Найти количество слов, у которых первая и последняя буква совпадают между собой - C (СИ)

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

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

Дано n,S1...Sn найти кол - во слов у которых первая и последняя буква совпадают между собой . Помогите исправить ошибки.
Листинг программы
  1. #include <string.h>
  2. #include <stdio.h>
  3. #include <conio.h>
  4. int i,j,n,k,x;
  5. char s[100];
  6. void main()
  7. { clrscr();
  8. printf(" n = ");
  9. scanf("%d",&n);
  10. printf(" TEKСT: ");
  11. for (j=0; j<n; j++)
  12. {
  13. scanf("%c",&s[j]);
  14. }
  15. i=1;
  16. k=0;
  17. while (i<=strlen(s))
  18. {
  19. x=i;
  20. while (s[j]!=' ' && i<=strlen(s)) i++;
  21. if (s[x]==s[i-1]) k++;
  22. while (s[j]==' ' && i<=strlen(s)) i++;
  23. }
  24. printf(" KOL - BO CLOB: %d",k);
  25. getch();
  26. }

Решение задачи: «Найти количество слов, у которых первая и последняя буква совпадают между собой»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int main(void)
  6. {
  7.     size_t strings_count = 0;
  8.     size_t result = 0;
  9.     size_t i;
  10.     char string[BUFSIZ];
  11.     printf("Count: ");
  12.     scanf("%u", &strings_count);
  13.     fflush(stdin);
  14.     for (i = 0; i < strings_count; i++)
  15.     {
  16.         printf(">>");
  17.         *strchr(fgets(string, BUFSIZ, stdin), '\n') = 0;
  18.         if (*string != 0 && string[0] == string[strlen(string) - 1])
  19.             ++result;
  20.     }
  21.     printf("%u\n", result);
  22.     return 0;
  23. }

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

В этом коде:

  1. Объявлены переменные:
    • strings_count - счётчик количества строк, которые нужно обработать.
    • result - переменная для хранения количества найденных строк.
    • i - счётчик итераций цикла.
    • string - массив для хранения строки, вводимой пользователем.
  2. С помощью функции printf выводится сообщение с просьбой ввести количество строк.
  3. С помощью функции scanf в переменную strings_count считывается введённое пользователем значение.
  4. Цикл for проходит по всем строкам, введённым пользователем.
  5. В каждой итерации цикла:
    • Выводится сообщение >>.
    • С помощью функции fgets в массив string считывается строка, введённая пользователем.
    • Если строка пустая (введён перевод строки), то это считается как ввод пустой строки и действие прерывается.
    • С помощью функции strchr определяется первый символ новой строки в считанной строке.
    • Если первый символ новой строки не равен 0 (т.е. строка не пустая), то проверяется условие string[0] == string[strlen(string) - 1]. Если это условие истинно, то увеличивается счётчик result.
  6. По завершении цикла выводится количество найденных строк.
  7. Программа возвращает 0, т.е. завершается успешно.

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


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

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

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

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

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

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