Посчитать количество слов в предложении, которые начинаются и заканчиваются с одной и той же буквой - C (СИ)
Формулировка задачи:
Задача: необходимо посчитать кол-во слов в предложении, которые начинаются и заканчиваются с одной и той же буквой. В предложение слова разделяются запятыми, а заканчивается точкой (я так понял это признак конца) По ручной прокрутке программа должна работать, но почему то она и не заканчивается при вводе точки, и неправильно определяет кол-во слов, не пойму в чем дело уже час
#include <stdio.h> #include <stdlib.h> #define DA 1 #define NET 0 int main() { int sim,nach,kon,razdel,result; razdel=DA; nach=kon=result=0; while ((sim=getchar())!='.') { if ((sim==' ') || (sim=='\n') || (sim=='\t')) razdel=DA; //Если символ-разделитель else { if (razdel==DA) //Если начало слова { nach=sim; while ((sim!=' ') || (sim!='\n') || (sim!='\t') || (sim!='.')) //пока символ - не разделитель { kon=sim; sim=getchar(); } if (nach==kon) result++; } razdel=NET; } } printf ("\n%d\n",result); return 0; }
Решение задачи: «Посчитать количество слов в предложении, которые начинаются и заканчиваются с одной и той же буквой»
textual
Листинг программы
#include <stdio.h> #include <string.h> int main() { const char CDelim[] = " ,.!?\n\t"; char str[1024] = { 0 }; char* p; size_t count = 0; fgets(str, sizeof(str) - 1, stdin); p = strtok(str, CDelim); while (p != NULL) { if (p[0] == p[strlen(p) - 1]) { printf("%s\n", p); count++; } p = strtok(NULL, CDelim); } printf("total: %u\n", count); return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д