Подсчитать количество слов с гласной буквой - C (СИ)
Формулировка задачи:
Добрый день.
Задача состоит в том, чтобы подсчитать количество слов в строке, разделяемой запятой, точкой и пробелом, имеющих в себе хотя бы одну гласную
Сильно не кусайтесь, делал по методичке
#include#define YES 1 #define NO 0 void main (void) { int c; int flag; int n; // количество слов с гласной n=0; flag=NO; while ( (c=getchar()) !=EOF) { if(c == ' ' || c == '.' || c == ',') { if(flag == YES) { if(c == 'e' || c == 'a' || c == 'y' || c == 'u' || c == 'i' || c == 'o' || c == 'E' || c == 'A' || c == 'Y' || c == 'U' || c == 'I' || c == 'O') { n=n+1; } else { flag=NO; } } flag = NO; } } printf ("number of words = %d\n", n); }
Забыл, при любом количестве слов/символов в конце выводит 0
Решение задачи: «Подсчитать количество слов с гласной буквой»
textual
Листинг программы
#include "stdio.h" #define YES 1 #define NO 0 int main() { int c; int flag; int n; // количество слов с гласной n = 0; flag = NO; while ((c = getchar()) != '\n') { if (flag == NO) { if (c == 'e' || c == 'a' || c == 'y' || c == 'u' || c == 'i' || c == 'o' || c == 'E' || c == 'A' || c == 'Y' || c == 'U' || c == 'I' || c == 'O') { flag = YES; n++; } } else { if (c == ',' || c == '.' || c == ';') { flag = NO; } } } printf("number of words = %d\n", n); return 0; }
Объяснение кода листинга программы
- В начале программы подключается стандартная библиотека для ввода-вывода
stdio.h
. - Затем определяются две константы
YES
иNO
, которые используются для обозначения истины и лжи соответственно. - Далее идет функция
main()
, которая является точкой входа в программу. - Внутри функции объявлены три переменные:
c
,flag
иn
. - Переменная
n
инициализируется значением 0 и используется для подсчета количества слов с гласной. - Переменная
flag
инициализируется значениемNO
, что означает, что в текущем слове нет гласных. - Далее идет цикл
while
, который читает символы из стандартного ввода по одному за раз, пока не встретит символ новой строки. - Внутри цикла проверяется значение переменной
flag
. Если оно равноNO
, то проверяется, является ли текущий символ гласной. Если да, то переменнаяflag
переключается в значениеYES
, переменнаяn
увеличивается на 1 и происходит переход к следующей итерации цикла. - Если значение переменной
flag
равноYES
, то проверяется, является ли текущий символ запятой, точкой или точкой с запятой. Если да, то переменнаяflag
переключается в значениеNO
и происходит переход к следующей итерации цикла. - После завершения цикла выводится значение переменной
n
, которое представляет количество слов с гласной. - В конце функции
main()
возвращается 0, что означает успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д