pashazt
11-11-2012, 16:31
Некорректно ищет слово с наибольшим количеством гласных букв. Что неправильно? Напишите правильный вариант.
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<locale.h>
int main(void)
{
setlocale (LC_ALL, "Rus");
char x[100], *p;
int i,d=0,k=1,sum;
printf("Введите текст : ",x);
strset (x,'\0');
scanf("%[^\n]%*c", x);
//Вывод количества слов
for (i=0; x[i]!='\0'; i++) d++;
for (i=1; i<d; i++) if (x[i]==' ' && x[i+1]!=' ') k++;
printf("Количество слов = %d",k);
printf("\n");
//Вывод слова с наибольшим количеством гласных букв
printf("Слово(а) с наибольшим количеством гласных букв : ");
for (i=0; x[i]!='\0'; i++)
{
if((*p=='e')||(*p=='u')||(*p=='i')||(*p=='o')||(*p=='a'))
sum+=*p;
if(sum>=sum)
printf("%s", p);
}
//Удаляет лишние пробелы
printf("\n");
printf("Отредактированый текст : ");
for(p = strtok(x, " "); p; p =strtok(NULL, " "))
printf("%s ", p);
getch();
return 0;
}
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<locale.h>
int main(void)
{
setlocale (LC_ALL, "Rus");
char x[100], *p;
int i,d=0,k=1,sum;
printf("Введите текст : ",x);
strset (x,'\0');
scanf("%[^\n]%*c", x);
//Вывод количества слов
for (i=0; x[i]!='\0'; i++) d++;
for (i=1; i<d; i++) if (x[i]==' ' && x[i+1]!=' ') k++;
printf("Количество слов = %d",k);
printf("\n");
//Вывод слова с наибольшим количеством гласных букв
printf("Слово(а) с наибольшим количеством гласных букв : ");
for (i=0; x[i]!='\0'; i++)
{
if((*p=='e')||(*p=='u')||(*p=='i')||(*p=='o')||(*p=='a'))
sum+=*p;
if(sum>=sum)
printf("%s", p);
}
//Удаляет лишние пробелы
printf("\n");
printf("Отредактированый текст : ");
for(p = strtok(x, " "); p; p =strtok(NULL, " "))
printf("%s ", p);
getch();
return 0;
}