Подсчитать количество слов с гласной буквой - 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;
}

Объяснение кода листинга программы

  1. В начале программы подключается стандартная библиотека для ввода-вывода stdio.h.
  2. Затем определяются две константы YES и NO, которые используются для обозначения истины и лжи соответственно.
  3. Далее идет функция main(), которая является точкой входа в программу.
  4. Внутри функции объявлены три переменные: c, flag и n.
  5. Переменная n инициализируется значением 0 и используется для подсчета количества слов с гласной.
  6. Переменная flag инициализируется значением NO, что означает, что в текущем слове нет гласных.
  7. Далее идет цикл while, который читает символы из стандартного ввода по одному за раз, пока не встретит символ новой строки.
  8. Внутри цикла проверяется значение переменной flag. Если оно равно NO, то проверяется, является ли текущий символ гласной. Если да, то переменная flag переключается в значение YES, переменная n увеличивается на 1 и происходит переход к следующей итерации цикла.
  9. Если значение переменной flag равно YES, то проверяется, является ли текущий символ запятой, точкой или точкой с запятой. Если да, то переменная flag переключается в значение NO и происходит переход к следующей итерации цикла.
  10. После завершения цикла выводится значение переменной n, которое представляет количество слов с гласной.
  11. В конце функции main() возвращается 0, что означает успешное выполнение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.6 из 5
Похожие ответы