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

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

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

Возникли трудности с написание программы подсчёта количества звонких букв в строке. Строка вводится на английскими буквами. Помогите пожалуйста.
Помогите сделать не так коряво как сделал я
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <ctype.h>
#include <conio.h>
 
void main(){
    char string[20];
    int j,k,res;
    int i=0;
    char s;
    printf("Vvedite text");
    i=0;
    do{s=getchar();
    string[i++]=s;
    }
    while (s!='\n');
    string[--i]='\0';
    res=strlen(string);
    k=0;
        for(i=1;i<=res;i++) if(string[i]=='b') k++;
        for(i=1;i<=res;i++) if(string[i]=='v') k++;
        for(i=1;i<=res;i++) if(string[i]=='g') k++;
        for(i=1;i<=res;i++) if(string[i]=='d') k++;
        for(i=1;i<=res;i++) if(string[i]=='z') k++;
        for(i=1;i<=res;i++) if(string[i]=='l') k++;
        for(i=1;i<=res;i++) if(string[i]=='m') k++;
        for(i=1;i<=res;i++) if(string[i]=='n') k++;
        for(i=1;i<=res;i++) if(string[i]=='r') k++;
    printf("Zvonkih = %d",k);
getch();
}

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

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main()
{
   const char CChars[] = "bvgdzlmnr";
   char str[256] = { '\0' };
   unsigned k = 0, i, len;
 
   printf("text: ");
   fgets(str, sizeof(str) - 1, stdin);
   len = strlen(str);
 
   for (i = 0; i < len; ++i)
   {
      if (strchr(CChars, str[i]))
      {
         k++;
      }
   }
 
   printf("k = %d\n", k);
 
   system("pause");
 
   return 0;
}

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

В этом коде:

  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
Похожие ответы