1. Твоя программа вообще не работоспособна, хотя она и компилируется, но в результате выдает полную херню. В вопросе
http://otvet.mail.ru/question/90460863 есть "Введите строку не более 200 символов\n", а тут у тебя массив str[10]; из десяти чаров. Какое нахрен предложение в 10 символов?
2. Либо вы изучаете С++ и используете все "достижения цивилизации" типа string и т. д. и пишете на С++:
#include <string>
#include <iostream>
using namespace std;
int main() {
string s, w, m, d = " " /* добавить разделителей по вкусу */ ;
cout << "string? ";
getline(cin, s);
int b, e = 0;
while ((b = s.find_first_not_of(d, e)) != s.npos) {
e = s.find_first_of(d, b);
w = s.substr(b, e - b);
if (w.size() > m.size()) m = w;
}
cout << "max. length word: " << m << endl;
}
3. Либо вы изучаете Си в каком-нибудь курсе системного программирования и, используя стандартную библиотеку Си, копошитесь в Си-строках:
#include <stdio.h>
#include <string.h>
main() {
char s[201], *w, *m = "", d[] = " \n" /* добавить разделителей по вкусу */ ;
printf("string? ");
fgets(s, 201, stdin);
for (w = strtok(s, d); w != NULL; w = strtok(NULL, d)) if (strlen(w) > strlen(m)) m = w;
printf("max. length word: %s\n", m);
}
Если ваш препод не понимает разницу между Си и С++, то надо валить из этого учебного заведения, или требовать всей группой, чтобы вам поменяли преподавателя.
4. Ну и четвертый вариант: вас пытаются обучить алгоритмам и программированию. Тут вам не подойдет Си и С++. Для начального обучения программированию школьников и студентов первых курсов был придуман язык Паскаль и другие языки, которые у нас менее распространены. Если в вашем учебном заведении учебную программу составляли мудаки, то опять же, лучше валить оттуда.
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <cstdio>
using namespace std;
int main()
{
char str [10];
printf ("string? ");
fgets(str, 11, stdin);
int max, test, length;
test=0;
for (length=0; (length<11) && (str[length]!=0); length++) max++; //пусть первое слово - максимальное
for (length=0; length<11; length++){ //сравниваю остальные слова с первым и если какое-то из них больше, то записываю его
if (str[length]==0) {
if (test>max) {
max=test;
test=0;
}
else test=0;
}
else test++;
}
printf("%d", max);
getchar();
}