Подсчитать количество звуков в слове - C (СИ)

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

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

Вот написал програму, которая подсчитивает звуки в слове. Только неправильно работеет, подскажыте где ошыбка!
#include <graphics.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
void main()
{
 int k=1,i;
 int gol1=0,son1=0,gluh1=0,dzvn1=0,other1=0;
 char gol[]={'а','о','у','е','и','i'};
 char son[]={'р','н','м','л'};
 char gluh[]={'п','т','к','ш','с','х','ч','ф'};
 char dzvn[]={'д','б','г','ж','з','в'};
 char other[]={'ь','й'};
 char sl[256];
 clrscr();
 printf("ENTER TEXT:\n");
 scanf("%s",&sl);
   for(i=0;i<strlen(sl);i++)
   {
     for(int j=0;j<strlen(gol);j++)
      {
       if(sl[i]==gol[j])
    {gol1++;}
      }
     for(j=0;j<strlen(son);j++)
      {
       if(sl[i]==son[j])
    {son1++;}
      }
     for(j=0;j<strlen(gluh);j++)
      {
       if(sl[i]==gluh[j])
    {gluh1++;}
      }
     for(j=0;j<strlen(dzvn);j++)
      {
       if(sl[i]==dzvn[j])
    {dzvn1++;}
      }
     for(j=0;j<strlen(other);j++)
      {
       if(sl[i]==other[j])
    {other1++;}
      }
   }
   printf("\ngol-%d",gol1);
   printf("\nson-%d",son1);
   printf("\ngluh-%d",gluh1-son1);
   printf("\ndzvn-%d",dzvn1);
   printf("\nother-%d",other1);
} 
getch();  }

Решение задачи: «Подсчитать количество звуков в слове»

textual
Листинг программы
int main(){
 int k=1,i;
 int gol1=0,son1=0,gluh1=0,dzvn1=0,other1=0;
 char gol[]={'а','о','у','е','и','i'};
 char son[]={'р','н','м','л'};
 char gluh[]={'п','т','к','ш','с','х','ч','ф'};
 char dzvn[]={'д','б','г','ж','з','в'};
 char other[]={'ь','й'};
 char sl[256];
 
 printf("ENTER TEXT:\n");
 scanf("%s",&sl);
   for(i=0;i<strlen(sl);i++)
   {
     for(int j=0;j<strlen(gol);j++)
      {
       if(sl[i]==gol[j])
        {gol1++;}
      }
     for(int j=0;j<strlen(son);j++)
      {
       if(sl[i]==son[j])
        {son1++;}
      }
     for(int j=0;j<strlen(gluh);j++)
      {
       if(sl[i]==gluh[j])
        {gluh1++;}
      }
     for(int j=0;j<strlen(dzvn);j++)
      {
       if(sl[i]==dzvn[j])
        {dzvn1++;}
      }
     for(int j=0;j<strlen(other);j++)
      {
       if(sl[i]==other[j])
        {other1++;}
      }
   }
   printf("\ngol-%d",gol1);
   printf("\nson-%d",son1);
   printf("\ngluh-%d",gluh1-son1);
   printf("\ndzvn-%d",dzvn1);
   printf("\nother-%d",other1);
 
 
system("pause");
return 0;
}

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

  1. Объявлены переменные:
    • k - счетчик для цикла
    • i - индекс для доступа к элементам массивов
    • gol1, son1, gluh1, dzvn1, other1 - счетчики для подсчета количества соответствующих звуков
    • gol, son, gluh, dzvn, other - массивы символов, соответствующие звукам
    • sl - строка для ввода текста
  2. Пользователю предлагается ввести текст.
  3. Происходит цикл по каждому символу введенного текста.
  4. Для каждого символа происходит поиск в массивах gol, son, gluh, dzvn, other и увеличение соответствующего счетчика, если символ найден.
  5. После завершения цикла выводятся значения всех счетчиков.
  6. Код завершается командой system(pause), которая ожидает нажатия клавиши для продолжения работы программы.
  7. Возвращается 0, что означает успешное выполнение программы.

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


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

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

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