Подскажите, где ошибка - C (СИ) (157073)

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

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

Нужно посчитать количество повторений каждой буквы в произвольно введенном английском тексте и вывести. Написал код, но что-то намудрил в цикле да и с { } скобками у меня проблемы, не понимаю где их нужно ставить... Знатоки, помогите, пожалуйста, разобраться в программе...
Листинг программы
  1. #include <stdlib.h>
  2. #include <string.h>
  3. #include <stdio.h>
  4. #include <conio.h>
  5. void main()
  6. {
  7. char symb[27]={'a','b','c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'u', 'v', 'w', 'x', 'y', 'z'} ;
  8. float numb[100];
  9. char s1[100];
  10. printf ("введите текст: \n");
  11. gets(s1);
  12. int k, i, j;
  13. k=0;
  14. for (j=0; j<=25; j++)
  15. for (i=0; i<=strlen(s1); i++)
  16. {
  17. if (s1[i] == char(97+j))
  18. k++;
  19. numb[i] = k;
  20. }
  21. printf("%s", symb[27]);
  22. for (i=0; i<=strlen(s1); i++)
  23. printf("%d", numb[i]);
  24. getch();
  25. }

Решение задачи: «Подскажите, где ошибка»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <ctype.h>
  3. #include <conio.h>
  4.  
  5. void main()
  6. {
  7.   int counts[26] = { 0 };
  8.   int i;
  9.   char ch;
  10.  
  11.   while ((ch = getchar()) != '\n')
  12.     if (isalpha(ch))
  13.       counts[tolower(ch) - 'a']++;
  14.  
  15.   for (i = 0; i < 26; i++)
  16.     printf("%c: %d\n", i + 'a', counts[i]);
  17.  
  18.   getch();
  19. }

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


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

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

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

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

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

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