Найти количество слов, у которых первая и последняя буква совпадают между собой - C (СИ)
Формулировка задачи:
Дано n,S1...Sn найти кол - во слов у которых первая и последняя буква совпадают между собой .
Помогите исправить ошибки.
#include <string.h>
#include <stdio.h>
#include <conio.h>
int i,j,n,k,x;
char s[100];
void main()
{ clrscr();
printf(" n = ");
scanf("%d",&n);
printf(" TEKСT: ");
for (j=0; j<n; j++)
{
scanf("%c",&s[j]);
}
i=1;
k=0;
while (i<=strlen(s))
{
x=i;
while (s[j]!=' ' && i<=strlen(s)) i++;
if (s[x]==s[i-1]) k++;
while (s[j]==' ' && i<=strlen(s)) i++;
}
printf(" KOL - BO CLOB: %d",k);
getch();
}Решение задачи: «Найти количество слов, у которых первая и последняя буква совпадают между собой»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
size_t strings_count = 0;
size_t result = 0;
size_t i;
char string[BUFSIZ];
printf("Count: ");
scanf("%u", &strings_count);
fflush(stdin);
for (i = 0; i < strings_count; i++)
{
printf(">>");
*strchr(fgets(string, BUFSIZ, stdin), '\n') = 0;
if (*string != 0 && string[0] == string[strlen(string) - 1])
++result;
}
printf("%u\n", result);
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Объявлены переменные:
strings_count- счётчик количества строк, которые нужно обработать.result- переменная для хранения количества найденных строк.i- счётчик итераций цикла.string- массив для хранения строки, вводимой пользователем.
- С помощью функции
printfвыводится сообщение с просьбой ввести количество строк. - С помощью функции
scanfв переменнуюstrings_countсчитывается введённое пользователем значение. - Цикл
forпроходит по всем строкам, введённым пользователем. - В каждой итерации цикла:
- Выводится сообщение
>>. - С помощью функции
fgetsв массивstringсчитывается строка, введённая пользователем. - Если строка пустая (введён перевод строки), то это считается как ввод пустой строки и действие прерывается.
- С помощью функции
strchrопределяется первый символ новой строки в считанной строке. - Если первый символ новой строки не равен 0 (т.е. строка не пустая), то проверяется условие
string[0] == string[strlen(string) - 1]. Если это условие истинно, то увеличивается счётчикresult.
- Выводится сообщение
- По завершении цикла выводится количество найденных строк.
- Программа возвращает 0, т.е. завершается успешно.