Т7. Задачи на строки повышенной сложности

Напишите в комментариях к этой записи консольные приложения для решения этих задач, укажите также код задачи.
Решены задачи 1-35. Не решены: 36. Необходимо тестирование решений!

Задачи

Т7.1. Дано предложение. Найти наибольшее количество идущих подряд пробелов.
Т7.2. Дан текст. Найти наибольшее количество идущих подряд одинаковых символов.
Т7.3. Дано слово. Определить, сколько различных букв в нем.
Т7.4. В слове имеются только две одинаковых буквы. Найти их.
Т7.5. Даны два слова. Для каждой буквы первого слова (в том числе для повторяющихся в этом слове букв) определить, входит ли она во второе слово. Например, если заданные слова информация и процессор, то для букв первого из них ответом должно быть: нет нет нет да да нет нет да нет нет.
Т7.6. Даны два слова. Для каждой буквы первого слова определить, входит ли она во второе слово. Повторяющиеся буквы первого слова не рассматривать. Например, если заданные слова процессор и информация, то для букв первого из них ответом должно быть: нет да да да нет нет.
Т7.7. Даны два слова. Напечатать только те буквы слов, которые есть только в одном из них (в том числе повторяющиеся). Например, если заданные слова процессор и информация, то ответом должно быть: п е с с и н ф м а я.
Т7.8. Даны два слова. Напечатать только те буквы слов, которые встречаются в обоих словах только один раз. Например, если заданные слова процессор и информация, то ответом должно быть: п е н ф м а я.
Т7.9. Даны два слова. Определить, можно ли из букв первого из них получить второе. Рассмотреть два варианта:
1) повторяющиеся буквы второго слова могут в первом слове не повторяться;
2) каждая буква второго слова должна входить в первое слово столько же раз, сколько и во второе.
Т7.10. Даны три слова. Напечатать только те буквы слов, которые есть лишь в одном из слов. Рассмотреть два варианта:
1) повторяющиеся буквы каждого слова рассматриваются;
2) повторяющиеся буквы каждого слова не рассматриваются.
Т7.11. Даны три слова. Напечатать их общие буквы. Повторяющиеся буквы каждого слова не рассматривать.
Т7.12. Даны три слова. Напечатать не повторяющиеся в них буквы.

Внимание!
В задачах Т7.13—Т7.32 принять, что:
в рассматриваемом предложении нет начальных и конечных пробелов и символов «-«;
количество слов в предложении не превышает 10.

Т7.13. Дано предложение из 10 слов. Заполнить ими массив из 10 элементов.
Т7.14. Дано предложение. Напечатать его в обратном порядке слов, например, предложение мама мыла раму должно быть напечатано в виде раму мыла мама.
Т7.15. Дано предложение. Поменять местами его первое и последнее слово.
Т7.16. Дано предложение. Напечатать все его слова, отличные от слова привет.
Т7.17. Дано предложение. Определить:
а) количество слов, начинающихся с буквы н;
б) количество слов, оканчивающихся буквой р.
Т7.18. Дано предложение. Вывести на экран:
а) его слова, начинающиеся и оканчивающиеся на одну и ту же букву;
б) его слова, которые содержат ровно три буквы е;
в) его слова, которые содержат хотя бы одну букву о.
Т7.19. Дано предложение. Найти какое-нибудь его слово, начинающееся на букву к.
Т7.20. Дано предложение. Найти длину его самого короткого слова.
Т7.21. Дано предложение. Напечатать его самое длинное слово (принять, что такое слово — единственное).
Т7.22. Дано предложение. Верно ли, что его самое длинное слово имеет больше 10 символов?
Т7.23. Дано предложение. Напечатать все его слова в порядке неубывания их длин.
Т7.24. Дано предложение. Напечатать все слова, которые встречаются в нем по одному разу.
Т7.25. Дано предложение. Напечатать все его различные слова.
Т7.26. Дано предложение. В нем только два слова одинаковые. Найти эти слова.
Т7.27. Дано предложение. Напечатать все его слова, предварительно преобразовав каждое из них по следующему правилу:
а) заменить первую встреченную букву a на о;
б) удалить из слова все вхождения последней буквы (кроме нее самой);
в) оставить в слове только первые вхождения каждой буквы;
г) в самом длинном слове удалить среднюю (средние) буквы. Принять, что такое слово — единственное.
Т7.28. Дана последовательность слов. Напечатать те слова последовательности, которые отличны от первого слова и удовлетворяют следующему свойству:
а) в слове нет повторяющихся букв;
б) слово симметрично.
Т7.29. Даны два предложения. Для каждого слова первого предложения (в том числе для повторяющихся в этом предложении слов) определить, входит ли оно
во второе предложение.
Т7.30. Даны два предложения. Для каждого слова первого предложения определить, входит ли оно во второе предложение. Повторяющиеся слова первого предложения не рассматривать.
Т7.31. Даны два предложения. Напечатать слова, которые есть только в одном из них (в том числе повторяющиеся).
Т7.32. Даны два предложения. Напечатать слова, которые встречаются в двух предложениях только один раз.

Т7.33. Дан текст. Проверить, правильно ли в нем расставлены круглые скобки (т. е. находится ли справа от каждой открывающей скобки соответствующая ей
закрывающая скобка, а слева от каждой закрывающей — соответствующая ей закрывающая). Предполагается, что внутри каждой пары скобок нет других скобок.
а) Ответом должны служить слова да или нет.
б) В случае неправильности расстановки скобок:
если имеются лишние правые (закрывающие) скобки, то выдать сообщение с указанием позиции первой такой скобки;
если имеются лишние левые (открывающие) скобки, то выдать сообщение с указанием количества таких скобок.
Если скобки расставлены правильно, то сообщить об этом.
Т7.34. Строка содержит арифметическое выражение, в котором используются круглые скобки, в том числе вложенные. Проверить, правильно ли в нем расставлены скобки.
а) Ответом должны служить слова да или нет.
б) В случае неправильности расстановки скобок:
если имеются лишние правые (закрывающие) скобки, то выдать сообщение с указанием позиции первой такой скобки;
если имеются лишние левые (открывающие) скобки, то выдать сообщение с указанием количества таких скобок.
Если скобки расставлены правильно, то сообщить об этом.
Т7.35. Дана строка текста, в котором нет начальных и конечных пробелов. Необходимо изменить ее так, чтобы длина строки стала равна заданной длине (предполагается, что требуемая длина не меньше исходной). Это следует сделать путем вставки между словами дополнительных пробелов. Количество пробелов между отдельными словами должно отличаться не более чем на 1.
Т7.36. Дано натуральное число n (n <= 1000). Напечатать это число русскими словами (тринадцать, сто пять, двести сорок один, тысяча и т. д.).


NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.


Помощь проекту:

Понравилась статья? Поделиться с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
44 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Задание 7.5:

 static void Main(string[] args)
    {
      Console.WriteLine(«Введите первое слово для анализа:»);
      string word1 = Console.ReadLine();
      Console.WriteLine(«Введите второе слово для анализа:»);
      string word2 = Console.ReadLine();
      foreach (char s in word1)
      {
        for (int j = 0; j < word2.Length; j++)
        {
          if (s == word2[j])
          {
            Console.WriteLine($»Буква {s} — да»);
            break;
          }
          if (j == word2.Length-1)
          {
            Console.WriteLine($»Буква {s} — нет»);
          }
        }
      }
            
    }   

Задание 7.4
 static void Main(string[] args)
    {
      Console.WriteLine(«Введите любое слово для анализа:»);
      string? propos = Console.ReadLine();
      char s;
      for (int i = 0; i < propos.Length; i++)
      {
        for (int j = 0; j < propos.Length; j++)
        {
          if (propos[i] == propos[j] && i!=j)
          {
            s = propos[i];
            break;
          }
        }
      }
      Console.WriteLine($»В этом слове есть одинаковые буквы — {s}.»);
       
    }   

Задача 7.3 
static void Main(string[] args)
    {
      Console.WriteLine(«Введите любое слово для анализа:»);
      string? propos = Console.ReadLine();
      int qnty = 1;
      char s=’0′;
      for (int i = 0; i < propos.Length-1; i++)
      {
        for (int j = i; j <= propos.Length — 2; j++)
        {
          if (propos[i] == propos[j + 1])
          {
            qnty += 1;
            break;
          }
        }
      }
      Console.WriteLine($»В этом слове {propos.Length+1 — qnty} разных букв.»);
       
    }   

Последний раз редактировалось 10 дней назад Антон ем

T7.36
using System;
class HelloWorld {
 static void Main() {
  string number = Console.ReadLine();
  if(number.Length == 4){
    Console.WriteLine(«тысяча»);
  }
  string[] digits = new string[]{«один», «два», «три», «четыре», «пять», «шесть», «семь», «восемь», «девять»};
  string[] dozens = new string[]{«десять», «двадцать», «тридцать», «сорок», «пятьдесят», «шестьдесят», «семьдесят», «восемьдесят», «девяносто»};
  string[] hundreds = new string[]{«сто», «двести», «триста», «четыреста», «пятьсот», «шестьсот», «семьсот», «восемьсот», «девятьсот»};
  string[] lessThanTwenty = new string[]{«одиннадцать», «двенадцать», «тринадцать», «четырнадцать», «пятнадцать»,
                      «шестнадцать», «семнадцать», «восемнадцать»,»девятнадцать»};
  if(number.Length == 1){
    Console.WriteLine(digits[Convert.ToInt32(number)-1]);
  }
  if(number.Length == 2){
    if(number[1] == ‘0’){
      Console.WriteLine(dozens[int.Parse(number[0].ToString())-1]);
    } else if(number[0] == ‘1’){
      Console.WriteLine(lessThanTwenty[int.Parse(number[1].ToString())-1]);
    } else{
      Console.WriteLine(dozens[int.Parse(number[0].ToString())-1] + » » + digits[int.Parse(number[1].ToString())-1]);
    }
  }
   
  if(number.Length == 3){
    if(number[1] == ‘0’ && number[2] == ‘0’){
      Console.WriteLine(hundreds[int.Parse(number[0].ToString())-1]);
    } else if(number[1] == ‘0’){
      Console.WriteLine(hundreds[int.Parse(number[0].ToString())-1] + » » + digits[int.Parse(number[2].ToString())-1]);
    } else if(number[2] == ‘0’){
      Console.WriteLine(hundreds[int.Parse(number[0].ToString())-1] + » » + dozens[int.Parse(number[1].ToString())-1]);
    } else{
      Console.WriteLine(hundreds[int.Parse(number[0].ToString())-1] + » » + dozens[int.Parse(number[1].ToString())-1]+ » » + digits[int.Parse(number[2].ToString())-1]);
    }
  }
 }    
}

T7.25
using System;
using System.Collections.Generic;
class HelloWorld {
 static void Main() {
  string sentence = Console.ReadLine();
  string[] words = sentence.Split(» «);
  Dictionary<string, int> uniqueWords = new Dictionary<string, int>();
  for(int i = 0; i < words.Length; i++){
    uniqueWords[words[i]] = i;
  }
  foreach(string word in uniqueWords.Keys){
    Console.WriteLine(word);
  }
 }
}

Последний раз редактировалось 1 месяц назад Мохаммеджан ем

T7.23
using System;
class HelloWorld {
 static void Main() {
  string sentence = Console.ReadLine();
  string[] words = sentence.Split(» «);
  string tmpWord;
  for(int i = 0; i + 1 < words.Length; i++){
    for(int j = 0; j + 1 < words.Length; j++){
      if(words[j].Length > words[j+1].Length){
        tmpWord = words[j];
        words[j] = words[j+1];
        words[j+1] = tmpWord;
      }
    }
  }
  foreach(string word in words){
    Console.WriteLine(word);
  }
 }
}

T7.23
using System;
class HelloWorld {
 static void Main() {
  string sentence = Console.ReadLine();
  string[] words = sentence.Split(» «);
  string longestWord = words[0];
  foreach(string word in words){
    if(word.Length > longestWord.Length){
      longestWord = word;
    }
  }
  Console.WriteLine(longestWord.Length);
 }
}

Т7.22
using System;
class HelloWorld {
 static void Main() {
  string sentence = Console.ReadLine();
  string[] words = sentence.Split(‘ ‘);
  string longestWord = words[0];
  foreach(string word in words){
    if(longestWord.Length < word.Length){
      longestWord = word;
    }  
  }
  if(longestWord.Length > 10){
    Console.WriteLine(«Верно»);
  } else{
    Console.WriteLine(«Неверно»);
  }
 }
}

Т7.21
using System;
class HelloWorld {
 static void Main() {
  string sentence = Console.ReadLine();
  string[] words = sentence.Split(‘ ‘);
  string longestWord = words[0];
  foreach(string word in words){
    if(longestWord.Length < word.Length){
      longestWord = word;
    }  
  }
  Console.WriteLine(longestWord + «: » + longestWord.Length);
 }
}

Последний раз редактировалось 1 месяц назад Мохаммеджан ем

Т7.20
using System;
class HelloWorld {
 static void Main() {
  string sentence = Console.ReadLine();
  string[] words = sentence.Split(‘ ‘);
  string shortestWord = words[0];
  foreach(string word in words){
    if(shortestWord.Length > word.Length){
      shortestWord = word;
    }  
  }
  Console.WriteLine(shortestWord + «: » + shortestWord.Length);
 }
}

Т7.19
using System;
class HelloWorld {
 static void Main() {
  string sentence = Console.ReadLine();
  string[] words = sentence.Split(‘ ‘);
  for(int i = 0; i < words.Length;i++){
    if(words[i][0] == ‘к’){
      Console.WriteLine(words[i]);
    }
  }  
 }
}

Т7.18
using System;
class HelloWorld {
 static void Main() {
  string sentence = Console.ReadLine();
  string[] words = sentence.Split(‘ ‘);
  for(int i = 0; i < words.Length;i++){
    if(words[i][0] == words[i][words[i].Length-1]){
      Console.WriteLine(words[i]);
      continue;
    }
    int countE = 0;
    int countO = 0;
    foreach(char ch in words[i]){
      if(ch == ‘е’){
        countE++;
      } else if(ch == ‘о’){
        countO++;
      }
    }
    if(countE == 3){
      Console.WriteLine(words[i]);
    } else if(countO >= 1){
      Console.WriteLine(words[i]);
    }
  }
 }
}

Т7.17
using System;
class HelloWorld {
 static void Main() {
  string sentence = Console.ReadLine();
  string[] words = sentence.Split(‘ ‘);
  int startsWithN = 0, startsWithR = 0;
  for(int i = 0; i < words.Length;i++){
    if(words[i][0] == ‘р’){
      startsWithR++;
    } else if(words[i][0] == ‘н’){
      startsWithN++;
    }
  }
  Console.WriteLine(«Начинается с р: » + startsWithR);
  Console.WriteLine(«Начинается с н: » + startsWithN);
 }
}

Т7.16
using System;
class HelloWorld {
 static void Main() {
  string sentence = Console.ReadLine();
  string[] words = sentence.Split(‘ ‘);
  for(int i = 0; i < words.Length;i++){
    if(words[i] != «привет»){
      Console.WriteLine(words[i]);
    }
  }
 }
}

Т7.15
using System;
class HelloWorld {
 static void Main() {
  string sentence = Console.ReadLine();
  string[] words = sentence.Split(‘ ‘);
  string tmpword = words[0];
  words[0] = words[words.Length-1];
  words[words.Length-1] = tmpword;
  for(int i = 0; i < words.Length;i++){
    Console.WriteLine(words[i]);
  }
 }
}

Т7.14
using System;
class HelloWorld {
 static void Main() {
  string sentence = Console.ReadLine();
  string[] words = sentence.Split(‘ ‘);
  for(int i = words.Length-1; i>=0;i—){
    Console.WriteLine(words[i]);
  }
 }
}

T7.7
using System;
using System.Collections.Generic;
class HelloWorld {
 static void Main() {
 string firstWord = Console.ReadLine();
 string secondWord = Console.ReadLine();
 List<char> letters = new List<char>();

 for(int i = 0; i < firstWord.Length; i++){
  bool yesOrNo = false;
  for(int j = 0; j < secondWord.Length; j++){
   if(firstWord[i] == secondWord[j]){
    yesOrNo = true;
   }
  }
  if(yesOrNo == false){
   letters.Add(firstWord[i]);
  }
 }
 for(int i = 0; i < secondWord.Length; i++){
  bool yesOrNo = false;
  for(int j = 0; j < firstWord.Length; j++){
   if(secondWord[i] == firstWord[j]){
    yesOrNo = true;
   }
  }
  if(yesOrNo == false){
   letters.Add(secondWord[i]);
  }
 }
 foreach(char item in letters){
  Console.WriteLine(item);
 }
 }
}

T7.6
using System;
using System.Collections.Generic;
class HelloWorld {
 static void Main() {
  string firstWord = Console.ReadLine();
  string secondWord = Console.ReadLine();
  Dictionary<char,string> containsOrNot = new Dictionary<char,string>();

  for(int i = 0; i < firstWord.Length; i++){
    bool yesOrNo = false;
    for(int j = 0; j < secondWord.Length; j++){
      if(firstWord[i] == secondWord[j]){
        yesOrNo = true;
      }
    }
    if(yesOrNo == true){
      containsOrNot[firstWord[i]] = «yes»;
    } else{
      containsOrNot[firstWord[i]] = «no»;
    }
  }
  foreach(var item in containsOrNot.Values){
    Console.WriteLine(item);
  }
 }
}

T7.5
using System;
using System.Collections.Generic;
class HelloWorld {
 static void Main() {
  string firstWord = Console.ReadLine();
  string secondWord = Console.ReadLine();
  List<string> containsOrNot = new List<string>();

  for(int i = 0; i < firstWord.Length; i++){
    bool yesOrNo = false;
    for(int j = 0; j < secondWord.Length; j++){
      if(firstWord[i] == secondWord[j]){
        yesOrNo = true;
      }
    }
    if(yesOrNo == true){
      containsOrNot.Add(«yes»);
    } else{
      containsOrNot.Add(«no»);
    }
  }
  foreach(string item in containsOrNot){
    Console.WriteLine(item);
  }
 }
}

T7.4
using System;
using System.Collections.Generic;
class HelloWorld {
 static void Main() {
  string word = Console.ReadLine();
  for(int i = 0; i < word.Length; i++){
    for(int j = i+1; j < word.Length; j++){
      if(word[i]==word[j]){
        Console.WriteLine(word[i]);
        break;
      }
      if(j == word.Length-1){
        break;
      }
    }
  }
 }
}

T7.3
using System;
using System.Collections.Generic;
class HelloWorld {
 static void Main() {
  string word = Console.ReadLine();
  Dictionary<char, int> uniqueLetters = new Dictionary<char, int>();
  for(int i = 0; i < word.Length; i++){
    uniqueLetters[word[i]] = i;
  }
  Console.WriteLine(uniqueLetters.Count);
 }
}

T7.2
using System;
class HelloWorld {
 static void Main() {
  string sentence = Console.ReadLine();
  int max = 0, tmp = 1;
  if(sentence.Length > 1){
    for(int i = 0; i < sentence.Length-1; i++){
    if(sentence[i] == sentence[i+1]){
      tmp++;
      max = tmp;
      } else{
        tmp = 1;
      }
    }
  }
  Console.WriteLine(max);
 }
}

программа будет считать на единицу меньше реального количества символов, потому что последний символ в последовательности одинаковых символов не увеличит счетчик, так как не выполнится равенство со следующим символом.

T7.1
using System;
class HelloWorld {
 static void Main() {
  string sentence = Console.ReadLine();
  int max = 0, tmp = 0;
  foreach(var ch in sentence){
    if(ch == ‘ ‘){
      tmp++;
      max = tmp;
    } else{
      tmp = 0;
    }
  }
  Console.WriteLine(max);
 }
}

Последний раз редактировалось 2 месяцев назад Мохаммеджан ем

Дана строка, содержащая последовательность латинских слов, разделенных пробелами. Определить букву, встречающуюся в словах чаще всех остальных. Если такая буква не одна, то вывести первую в алфавитном порядке.

#2.27. в)

string text = «Дано епредложение. Напечатать все его слова, предварительно преобразовав каждое из них по следующему правилу»;
int a = 0;
string s = «», s2 = «»;
text = text.ToLower();
string[] txt = text.Split(new char[] {‘ ‘, ‘,’, ‘.’ }, StringSplitOptions.RemoveEmptyEntries);
foreach (string word in txt)
{
  s = word;
  s2 = String.Empty + word[0];
  s = word.Remove(0, 1);
  s = s.Replace(s2, null, StringComparison.OrdinalIgnoreCase);
  Console.Write(s2+s+» «);
}

Т7.23. Дано предложение. Напечатать все его слова в порядке неубывания их длин.

string text = «Дано предложение. Напечатать все его слова в порядке возрастания их длин.»;
string[] words = text.Split(new [] {» «, «,», «.»}, StringSplitOptions.RemoveEmptyEntries);
string x;
for (int i = 0; i < words.Length; i++)
{
  for (int j = i + 1; j < words.Length; j++)
  {
    if (words[i].Length > words[j].Length)
    {
      x = words[i];
      words[i] = words[j];
      words[j] = x; 
    }
  }
  Console.Write(words[i] + » «);
}

Т7.22. Дано предложение. Верно ли, что его самое длинное слово имеет больше 10 символов?

string text = «Дано предложение. Верно ли, что его самое длинное слово имеет больше 10 символов»;
string[] words = text.Split(new [] {» «, «,», «.»}, StringSplitOptions.RemoveEmptyEntries);
int max = 0;
foreach (string s in words)
{
  if (max < s.Length)
    max = s.Length;
}
if (max>10)
Console.Write($»True — {max} letter»);
else
  Console.Write($»False — {max} letter»);

#7.14
string text = «мама мыла раму»;
string[] words = text.Split(new [] {» «}, StringSplitOptions.RemoveEmptyEntries);
for (int i = words.Length-1; i >=0 ; i—)
  Console.Write(words[i]+» «);

№7.13 (подскажите, правильно ли?)
string text = «Дано предложение из слов. Заполнить ими массив из десяти элементов»;
string[] words = text.Split(new [] {» «, «,» }, StringSplitOptions.RemoveEmptyEntries);
Console.WriteLine(«{0}», string.Join(» «, words));

#7.13

string text = «Дано предложение из слов. Заполнить ими массив из десяти элементов»;
string[] words = text.Split(new char[] { ‘ ‘ });
foreach (string s in words)
{
  Console.WriteLine(s);
}
Console.ReadKey();

#7.12

string s = «информация»;
string s1 = «процессор»;
string s2 = «сервер»;
string sum = «», sum1 = «»;
int a = 0, q = 0;
while (a < s.Length)

  if(!s1.Contains(s[a], StringComparison.OrdinalIgnoreCase))
  sum += s[a];
  a++;
}
while (q < sum.Length)
{
  if (!s2.Contains(sum[q], StringComparison.OrdinalIgnoreCase))
    sum1 += sum[q];
  q++;
}
Console.Write(sum1);
Console.ReadKey();

Последний раз редактировалось 9 месяцев назад Евгений ем

#7.5
string s = «информация»;
string s1 = «процессор»;
int a = 0;
while (a < s1.Length)
{
  bool b = s1.Contains(s[a]);
  a++;
  Console.WriteLine(b);
}
Console.ReadKey();

#7.3.

string txt = «Moscow»;
int num = 0;
var text = txt.Distinct();
foreach (char c in text)
{
  num++;
}
Console.Write(num);

Т7.22. Дано предложение. Верно ли, что его самое длинное слово имеет больше 10 символов?

static void Main(string[] args)
        {
            string str = "dfdgdhdhfd cgnkjscgh cnrskmg cdmfkfdghfnkcsm";
            string[] splitStr = str.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            int maxWordLenght = 0;
            string maxWord = string.Empty;
            for(int i=0; i<splitStr.Length; i++)
            {
                if(splitStr[i].Length>maxWordLenght)
                {
                    maxWord = splitStr[i];
                    maxWordLenght = maxWord.Length;
                }
            }
            if(maxWordLenght>10)
            {
                Console.WriteLine($"max word is - {maxWord} and it is lenght more than 10");
            }
            else
            {
                Console.WriteLine($"max word is - {maxWord} and it is lenght less than 10");
            }
        }

Не полностью поместился ответ почемуто(( Отдельно отправлю тогда Енам и статический метод на котором оборвался прошлый пост.

class Program
{
enum NumWord
{
ноль = 0,
один = 1,
два = 2,
три = 3,
четыре = 4,
пять = 5,
шесть = 6,
семь = 7,
восемь = 8,
девять = 9,
десять = 10,
одиннадцать = 11,
двенадцать = 12,
тринадцать = 13,
четырнадцать = 14,
пятнадцать = 15,
шестнадцать = 16,
семнадцать = 17,
восемнадцать = 18,
девятнадцать = 19,
двадцать = 20,
тридцать = 30,
сорок = 40,
пятьдесят = 50,
шестьдесят = 60,
семьдесят = 70,
восемьдесят = 80,
девяносто = 90,
сто = 100,
двести = 200,
триста = 300,
четыреста = 400,
пятьсот = 500,
шестьсот = 600,
семьсот = 700,
восемьсот = 800,
девятьсот = 900,
тысяча = 1000
}
static int[] SeparateNum(int value)
{
int[] numArray = new int[value.ToString().Length];
long valueLong = (long)value;
long factor = 10;
int i = 0;
while (valueLong > factor / 10)
{
numArray[i] = (int)(valueLong % factor — valueLong % (factor / 10));
factor *= 10;
i++;
}
Array.Reverse(numArray);
return numArray;
}

Т7.36. Дано натуральное число n (n factor / 10)
{
numArray[i] = (int)(valueLong % factor — valueLong % (factor / 10));
factor *= 10;
i++;
}

Array.Reverse(numArray);

return numArray;

}
static void Main(string[] args)
{
Console.WriteLine(«Введите число от 0 до 1000»);

int value;

while (true)
{
try
{
value = int.Parse(Console.ReadLine());
}
catch (Exception)
{
Console.WriteLine(«Не корректный ввод. Введите число от 0 до 1000.»);
continue;
}

if (value = 0)
break;

else
Console.WriteLine(«Не корректный ввод. Введите число от 0 до 1000.»);
}

NumWord word = (NumWord)value;

if (Enum.IsDefined(typeof(NumWord), value))
{
word = (NumWord)value;
Console.WriteLine(word);
}
else
{

int[] intArray = SeparateNum(value);
for (int i = 0; i < intArray.Length; i++)
{
Console.Write((NumWord)intArray[i] + " ");
}
}

Не знаю на сколько уместно тут использование Енама. В любом случае буду рад оценке подхода в целом и буду приветствовать критику. Спасибо!

Т7.36 Дано натуральное число n (n <= 1000). Напечатать это число русскими словами (тринадцать, сто пять, двести сорок один, тысяча и т. д.).

class Program
    {
        static void Main(string[] args)
        {
            // 
            Random random = new Random();
            int num = 0;
            
            for (int i = 0; i < 10; i++)
            {
                num = random.Next(1000);
                
                Console.WriteLine(num.ToString() + ": " + GetString(num));
            }
        }

        public static string GetString(int num)
        {
            int d3 = 0;
            int d2 = 0;
            int d1 = 0;
            d1 = num % 10;
            d2 = (num / 10) % 10;
            d3 = num / 100;
            string s1 = "";
            string s2 = "";
            string s3 = "";
            string str = "";

            switch (d3)
            {
                case 1:
                    str += "сто ";
                    break;
                case 2:
                    str += "двести ";
                    break;
                case 3:
                    str += "триста ";
                    break;
                case 4:
                    str += "четыреста ";
                    break;
                case 5:
                    str += "пятьсот ";
                    break;
                case 6:
                    str += "шестьсот ";
                    break;
                case 7:
                    str += "семьсот ";
                    break;
                case 8:
                    str += "восемьсот ";
                    break;
                case 9:
                    str += "девятьсот ";
                    break;
            }
            switch (d2)
            {
                case 1:
                    switch (d1)
                    {
                        case 1:
                            str += "одинадцать";
                            break;
                        case 2:
                            str += "двенадцать";
                            break;
                        case 3:
                            str += "тринадцать";
                            break;
                        case 4:
                            str += "четырнадцать";
                            break;
                        case 5:
                            str += "пятнадцать";
                            break;
                        case 6:
                            str += "шестнадцать";
                            break;
                        case 7:
                            str += "семнадцать";
                            break;
                        case 8:
                            str += "восемнадцать";
                            break;
                        case 9:
                            str += "девятнадцать";
                            break;
                        case 0:
                            str += "десять";
                            break;
                    }
                    break;
                case 2:
                    str += "двадцать ";
                    break;
                case 3:
                    str += "тридцать ";
                    break;
                case 4:
                    str += "сорок ";
                    break;
                case 5:
                    str += "пятьдесят ";
                    break;
                case 6:
                    str += "шестьдесят ";
                    break;
                case 7:
                    str += "семьдесят ";
                    break;
                case 8:
                    str += "восемьдесят ";
                    break;
                case 9:
                    str += "девяносто ";
                    break;
            }
            if (d2 != 1)
            {
                switch (d1)
                {
                    case 1:
                        str += "один";
                        break;
                    case 2:
                        str += "два";
                        break;
                    case 3:
                        str += "три";
                        break;
                    case 4:
                        str += "четыре";
                        break;
                    case 5:
                        str += "пять";
                        break;
                    case 6:
                        str += "шесть";
                        break;
                    case 7:
                        str += "семь";
                        break;
                    case 8:
                        str += "восемь";
                        break;
                    case 9:
                        str += "девять";
                        break;
                }
            }
            return str;
        }
    }
Важно: Вы можете поддержать проект и автора.
Важно: Вы можете поддержать проект и автора.

Первая задача Т7.1. решена не верно — в случае, когда наибольшее количество символов включает последний символ строки, возвращается предыдущее максимальное значение.
Это мое решение, вдруг кому пригодится:

Console.Write("Enter text:");
var fullString = Console.ReadLine();
var countEqualCharachters = 1;
var maxCount = 1;
for (int i = 0; i < fullString.Length-1; i++)
{
   bool areEqualCurrentPrevious = fullString[i] == fullString[i + 1];
   bool isLastCheckIndex = i == fullString.Length - 2;
   if (areEqualCurrentPrevious)
      countEqualCharachters++;
   if ((isLastCheckIndex || !areEqualCurrentPrevious) && (maxCount < countEqualCharachters))
   {
      maxCount = countEqualCharachters;
      countEqualCharachters = 1;
   }
}
Console.WriteLine(maxCount);
Console.ReadKey();
Важно: Вы можете поддержать проект и автора.

Чуть изменил конец (№1)

string txt = «2 13 fgh10  «;
int num = 0;
int c = 0;
for (int i = 0; i < txt.Length-1; i++)
{
  if (txt[i] == txt[i + 1] && txt[i + 1] == ‘ ‘)
    num++;
  else if (c < num + 1)
  {
    c = num + 1;
    num = 0;
  }
  else
    num = 0;
}
if (num>c)
Console.WriteLine(num+1);
else
  Console.WriteLine(c);

44
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x