Подсчёт количества звонких букв в строке - исправить код - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Возникли трудности с написание программы подсчёта количества звонких букв в строке. Строка вводится на английскими буквами. Помогите пожалуйста.
Помогите сделать не так коряво как сделал я
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <math.h>
  5. #include <ctype.h>
  6. #include <conio.h>
  7. void main(){
  8. char string[20];
  9. int j,k,res;
  10. int i=0;
  11. char s;
  12. printf("Vvedite text");
  13. i=0;
  14. do{s=getchar();
  15. string[i++]=s;
  16. }
  17. while (s!='\n');
  18. string[--i]='\0';
  19. res=strlen(string);
  20. k=0;
  21. for(i=1;i<=res;i++) if(string[i]=='b') k++;
  22. for(i=1;i<=res;i++) if(string[i]=='v') k++;
  23. for(i=1;i<=res;i++) if(string[i]=='g') k++;
  24. for(i=1;i<=res;i++) if(string[i]=='d') k++;
  25. for(i=1;i<=res;i++) if(string[i]=='z') k++;
  26. for(i=1;i<=res;i++) if(string[i]=='l') k++;
  27. for(i=1;i<=res;i++) if(string[i]=='m') k++;
  28. for(i=1;i<=res;i++) if(string[i]=='n') k++;
  29. for(i=1;i<=res;i++) if(string[i]=='r') k++;
  30. printf("Zvonkih = %d",k);
  31. getch();
  32. }

Решение задачи: «Подсчёт количества звонких букв в строке - исправить код»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int main()
  6. {
  7.    const char CChars[] = "bvgdzlmnr";
  8.    char str[256] = { '\0' };
  9.    unsigned k = 0, i, len;
  10.  
  11.    printf("text: ");
  12.    fgets(str, sizeof(str) - 1, stdin);
  13.    len = strlen(str);
  14.  
  15.    for (i = 0; i < len; ++i)
  16.    {
  17.       if (strchr(CChars, str[i]))
  18.       {
  19.          k++;
  20.       }
  21.    }
  22.  
  23.    printf("k = %d\n", k);
  24.  
  25.    system("pause");
  26.  
  27.    return 0;
  28. }

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

В этом коде:

  1. Объявлены две константы: CChars и k. Значение первой представляет собой строку, состоящую из букв латинского алфавита. Значение второй - 0.
  2. Объявлена переменная str типа char, которая является массивом символов. Её инициализируют нулевым символом.
  3. В основной функции main() выводится приглашение для ввода текста.
  4. Затем с помощью функции fgets() вводят строку, длина которой не превышает 255 символов.
  5. Переменная len получает значение, равное длине введённой строки.
  6. В цикле for перебираются все символы введённой строки.
  7. Если символ является буквой (это проверяется с помощью функции strchr(), которая ищет символ в строке CChars), то к переменной k прибавляется единица.
  8. После окончания цикла выводится значение переменной k, которое представляет собой количество букв в введённой строке.
  9. Затем с помощью функции system() приостанавливается выполнение программы до нажатия клавиши.
  10. В конце функции main() возвращается 0, что означает успешный конец работы программы.

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


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

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

5   голосов , оценка 3.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы