Войти

Показать полную графическую версию : Проблема с переменной


pashazt
24-11-2012, 23:32
Проблема заключается в том, что некорректно работает третий блок кода, а всё потому что перед этим в ИКСЕ находится только первое слово.
Как это исправить?

#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<locale.h>
#include<iostream>



int main()

{

setlocale (LC_ALL, "Rus");

char x[100], *p;
int i,d=0,k=1,a=0,b=0,c=0,sum=0,max=0,min=0;
printf("Введите текст : ",x);
strset (x,'\0');
gets(x);

//1

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");



//2

printf("Отредактированный текст : ");
for(p = strtok(x, " "); p; p =strtok(NULL, " "))

printf("%s ", p);



//3



printf("\n");
printf("Слово с наибольшим количеством гласных букв : ");


int wordEndIndex = 0;
int largestWordIndex = 0;

{
int max = 0;
int wordStartIndex = 0;
int count = 0;

for (int i = 0; x[i] != '\0'; i++)

{

if (x[i] == ' ')

{

count = 0;
wordStartIndex = i + 1;

}

if(x[i] == 'a' || x[i] == 'u' || x[i] == 'i' ||
x[i] == 'o' || x[i] == 'e' || x[i] == 'A' ||
x[i] == 'U' || x[i] == 'I' || x[i] == 'O' || x[i] == 'E' )

{

count++;
}

if(++count > max)

{
max = count;
largestWordIndex = wordStartIndex;
wordEndIndex = i + 1;
}
}


for (int i = largestWordIndex; i < wordEndIndex; i++)
{
printf("%c",x[i]) ;

}
}

getch();
return 0;
}

ferget
25-11-2012, 09:50
вот так вроде


printf("Введите текст : %s",x);
//strset (x,'\0');

pashazt
25-11-2012, 14:55
нет, всё равно не работает.

ferget
25-11-2012, 18:16
Что именно не работает?




© OSzone.net 2001-2012