Тема: модифікація коду програми на мові С
така проблема..написав програму до цього завдання :
задана непорожня послідовність непорожніх слів із латинських букв; сусідні слова відділяються одне від другого комами, а за останнім словом є крапка.
визначити слова, які починаються і закінчуються тою самою буквою.
Але написав її так, щоб вона просто підраховувала кількість цих слів. Виявилося що потрібно ці слова ще й вивести на екран.
це текст програми , яка просто підраховує кількість слів, які починаються і закінчуються однаковою буквою.
#include <stdio.h>
int main(void)
{
int i, wlen, words=0;
char str [200];
printf("enter your words: ");
gets(str);
for(i=0; i>=0 ;i++)
{
for(wlen=0; wlen>=0 ;wlen++)
{
if (str[i+wlen]==',' || str[i+wlen]=='\0')
break;
}
if(str[i]==str[i+wlen-1])
{
words++;
}
i=i+wlen;
if (str[i]=='\0')
break;
}
if(words!=0)
{
printf("there are %d word(s) with the same first and last letter\n",words);
}
else
printf("there are no words with the same first and last letter\n");
getchar();
return 0;
}
а ось текст цієї самої програми, але вже з виводом на екран. по ідеї мала б працювати , але виводить тільки перше слово з однаковою першою і останнью буквою:
#include <stdio.h>
#include <Windows.h>
int main(void)
{
char str [200];
int i, wlen, words=0;
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
printf("Введіть слова через кому: ");
gets(str);
for(i=0; ;i++)
{
for(wlen=0; ;wlen++)
{
if (str[i+wlen]==',' || str[i+wlen]=='\0') /*проходимо до кінця слова чи рядка*/
break;
}
if (str[i]==str[i+wlen-1])/*порівняння першої і останньої букви слова*/
{
words++;
}
i=i+wlen;
if (str[i]=='\0')
break;
}
if(words!=0)
{
printf(" Є %d слів з однаковою першою і останнью буквою\n",words);
}
else
printf("\a\aНемає слів з однаковою першою і останнью буквою!!! \a\a\n");
getchar();
return 0;
}
може хтось знає в чому проблема? буду вдячний)