Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
3 / 2 / 1
Регистрация: 28.05.2020
Сообщений: 172

Посчитать сколько раз использовались буквы из строки. Выводится для одной буквы, а надо для всех

01.12.2021, 20:05. Показов 1584. Ответов 3

Студворк — интернет-сервис помощи студентам
Задача программы состоит в том что надо посчитать сколько раз использовались буквы из строки. Проблема в том что выводится результат только одной буквы,а надо всех использованных.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Строки
{
    class Program
    {
        static void Main(string[] args)
        {
            //97-122 нижний регистр
            int x = 0;
            int y = 0;
            Console.Write("Введите строку над которой будут производиться действия:");
            string S = Console.ReadLine();
            Console.WriteLine("Изначальный вид:" + S);
            S = S.Trim();
            Console.WriteLine("Вид после обрезки лишних пробелов по краям:" + S);
            S = S.Replace(" ", "");
            Console.WriteLine("Вид после удаления междусимвольных пробелов:" + S);
            char[] letters = S.ToCharArray();
            foreach (char S1 in letters)
            {
                Console.Write(S1);
            }
            Console.WriteLine();
            for (int i = 0; i < letters.Length; i++)
            {
                Console.Write(letters[i] + " ");
                if (char.IsLetter(letters[i]))
                {
                    letters[i]=char.ToLower(letters[i]);
                }
                else
                {
                    letters[i] = '0';
                }
            }
            Console.WriteLine();
            S = new string(letters);
            S = S.Replace("0", "");
            letters = S.ToCharArray();
            foreach (char S1 in letters)
            {
                Console.Write(S1);
            }
            Console.WriteLine();
 
            for (int i = 97; i < 123; i++)
            {
                char a = (char)i;
                for (int j = 0; j < letters.Length; j++)
                {
                    if (letters[j] == a)
                    {
                        x++;
                        if (j == letters.Length - 1)
                        {
                            Console.WriteLine("Буква {0} использовалась {1} раз", letters[j], x);
                        }
                    }
                }
                x = 0;        
            }
 
            Console.ReadLine();
        }
    }
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.12.2021, 20:05
Ответы с готовыми решениями:

Строки. Посчитать, сколько раз входит сочетание, вставить пробел, вычеркнуть все буквы е
1) Дано слово, посчитать, сколько раз входит в него сочетание, скажем, le; 2) Нужно вставить в слове после каждой, стоящей на...

Для данной строки вывести информацию о том, какие буквы не использовались при ее написании
Для данной строки вывести информацию о том, какие буквы не использовались при ее написании. Помогите пожалуйста, язык...

Для введенного слова подсчитать для каждой буквы сколько раз в этом слове она встречалась
Для введенного слова подсчитать для каждой буквы сколько раз в этом слове она встречалась.

3
Злой няш
 Аватар для I2um1
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
01.12.2021, 21:35
Лучший ответ Сообщение было отмечено Lesch как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Строки
{
    class Program
    {
        static void Main(string[] args)
        {
            //97-122 нижний регистр
            int x = 0;
            int y = 0;
            Console.Write("Введите строку над которой будут производиться действия:");
            string S = Console.ReadLine();
            Console.WriteLine("Изначальный вид:" + S);
            S = S.Trim();
            Console.WriteLine("Вид после обрезки лишних пробелов по краям:" + S);
            S = S.Replace(" ", "");
            Console.WriteLine("Вид после удаления междусимвольных пробелов:" + S);
            char[] letters = S.ToCharArray();
            foreach (char S1 in letters)
            {
                Console.Write(S1);
            }
            Console.WriteLine();
            for (int i = 0; i < letters.Length; i++)
            {
                Console.Write(letters[i] + " ");
                if (char.IsLetter(letters[i]))
                {
                    letters[i] = char.ToLower(letters[i]);
                }
                else
                {
                    letters[i] = '0';
                }
            }
            Console.WriteLine();
            S = new string(letters);
            S = S.Replace("0", "");
            letters = S.ToCharArray();
            foreach (char S1 in letters)
            {
                Console.Write(S1);
            }
            Console.WriteLine();
 
            for (int i = 97; i < 123; i++)
            {
                char a = (char)i;
                for (int j = 0; j < letters.Length; j++)
                {
                    if (letters[j] == a)
                    {
                        x++;
                    }
                }
 
                if (x > 0)
                {
                    Console.WriteLine("Буква {0} использовалась {1} раз", a, x);
                }
 
                x = 0;
            }
 
            Console.ReadLine();
        }
    }
}
Без непонятных замен на 0 (trim/replace не нужны):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using System;
using System.Linq;
 
Console.Write("Введите строку над которой будут производиться действия: ");
string text = Console.ReadLine();
Console.WriteLine($"Изначальный вид: {text}");
 
text = text.Trim();
Console.WriteLine($"Вид после обрезки лишних пробелов по краям: {text}");
 
text = text.Replace(" ", "");
Console.WriteLine($"Вид после удаления междусимвольных пробелов: {text}");
 
(char Letter, int Count)[] letters = text
    .Select(x => char.ToLower(x))
    .Where(symbol => symbol is >= 'a' and <= 'z')
    .GroupBy(symbol => symbol)
    .Select(group => (Letter: group.Key, Count: group.Count()))
    .OrderBy(symbol => symbol.Letter)
    .ToArray();
 
foreach ((char letter, int count) in letters)
{
    Console.WriteLine($"Буква {letter} использовалась {count} раз");
}
Добавлено через 4 минуты
Не знаю зачем выводить символы на строках 26 и 47.
1
3 / 2 / 1
Регистрация: 28.05.2020
Сообщений: 172
01.12.2021, 21:43  [ТС]
Взялся за следующую похожую задачу и осознал в чем была проблема в этом задании)))) Такая глупая ошибка была...

А как называется ваш способ написания кода ? Я просто не встречал что то подобное(Больше похоже на язык SQL)

Добавлено через 2 минуты
А насчет строк с выводом- чисто для визуальной проверки кода делал,потом удалю
0
Злой няш
 Аватар для I2um1
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
01.12.2021, 22:45
Lesch, это Linq https://docs.microsoft.com/en-... harp/linq/

Linq и должен выглядеть как SQL. У него две формы записи: как у меня через методы или еще больше похоже на SQL как в документации по ссылке.

Linq более прожорливый к ресурсам компьютера, чем изначальный вариант. Но через Linq меньше шансов допустить ошибку и чаще всего Linq более читабельный.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.12.2021, 22:45
Помогаю со студенческими работами здесь

Switch: посчитать, сколько раз пользователь ввел буквы (a, e, i, o, u) и (A, E, I, O, U)
задание такое: Написать программу, которая просит у пользователя ввести буквы до тех пор, пока не встретится знак $, затем программа...

Для каждой буквы заданного текста указать, сколько раз она встречается в тексте
для каждой буквы заданного текста указать,сколько раз она встречается в тексте

Для каждой буквы из заданного текста укажите, сколько раз она встречается в тексте
//Для каждой буквы из заданного текста укажите, сколько раз она встречается в тексте. program HD; uses crt; var s:string; ...

Для каждой буквы заданного текста указать,сколько раз она встречается в тексте.
Для каждой буквы заданного текста указать,сколько раз она встречается в тексте.

Как вывести последние 3 буквы из первой строки и первые 3 буквы из второй строки 10 раз
Помогите пожалуйста, составить программу с действиями 1. Вводим любое слово в первую строку 2. Вводим любое слово во вторую строку 3....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru