Дан текст на русском языке. Определить, каких букв больше –гласных или согласных - C (СИ)
Формулировка задачи:
Решение задачи: «Дан текст на русском языке. Определить, каких букв больше –гласных или согласных»
#include <stdio.h>
#include <Windows.h>
int main ()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
char line[200]; //максимальное количество символов в каждой строке
int vowel = 0;
int consonant = 0;
size_t sizeOfLine;
while (fscanf(stdin,"%[^\n]", line) == 1) //считываем строку пока не встретим \n потом пропускаем его и читаем следующую
{
sizeOfLine = strlen(line);
for(short i = 0; i < sizeOfLine; ++i)//ищем гласные
switch(line[i])
{
case 'а':
case 'о':
case 'у':
case 'е':
case 'и':
case 'ы':
case 'э':
case 'ю':
case 'я':
++vowel;
break;
default:
if(line[i] >= -32 && line[i] <= -1)
++consonant;
}
}
fprintf(stdout,"Гласных: %d\nСогласных: %d\n", vowel, consonant);
if(vowel < consonant)
fprintf(stdout,"Согласных больше на: %d\n", consonant - vowel);
else
fprintf(stdout,"Гласных больше на: %d\n", vowel - consonant);
return 0;
}
Объяснение кода листинга программы
В этом коде считывается текст из стандартного ввода до тех пор, пока не встретится символ новой строки. Размер каждой строки сохраняется в переменной sizeOfLine. Затем для каждого символа в строке проверяется, является ли он гласной. Если символ является гласной, то увеличивается значение переменной vowel. Если символ является согласной, то увеличивается значение переменной consonant. После проверки всех символов в строке, значения переменных vowel и consonant выводятся на стандартный вывод. Затем проверяется, какое из значений больше, и выводится сообщение о том, каких букв больше – гласных или согласных. В конце программы возвращается 0, что означает успешное завершение работы программы.