Top.Mail.Ru
Ответы

Поиск кол-ва символов наибольшего числа в строке

Перепроверил, все правильно, а результат то верный, то неверный.

#include <iostream>
#include <string.h>
#include <stdio.h>
#include <cstdio>

using namespace std;

int main()
{
char str [200];
printf ("string? ");
fgets (str, 201, stdin);
int s, max;
s=0; max=0;
for (int i=0; ((i<200) && str!=0); i++)
if (str!=' ') {s++;}
else if (max

Дополнен
По дате
По рейтингу
Аватар пользователя
Новичок
12лет

fgets (str, 201, stdin);
В конце полученной строки есть символ '\n', это надо анализировать.
Похоже, тут просто ищется максимальная длина слова. Причем тогда тут числа (Поиск кол-ва символов наибольшего числа в строке) ?

> Поиск кол-ва символов наибольшего числа в строке
Чего-чего? Напиши ка лучше полностью текст задания.

Короче, подправил твою программу, как мог:

#include <stdio.h>

int main() {
char str [201];
int s = 0, mx = 0;
printf ("string? ");
fgets (str, 201, stdin);
for (int c = 0; str[c] != '\0' ; ++c) {
if (str[c] != ' ' && str[c] != '\n') {
s++;
} else {
if (mx < s) mx = s;
s = 0;
}
}
printf ("result: %d\n", mx);
}

Вывод самого длинного слова:

#include <stdio.h>

int main() {
char str [202];
int s = 0, mx = 0, in = 0, bc = 0, mc = 0;
printf ("string? ");
fgets (str, 202, stdin);
for (int c = 0; str[c] != '\0' ; ++c) {
if (!in && str[c] != ' ' && str[c] != '\n') {
in = s = 1;
bc = c;
} else if (in && (str[c] == ' ' || str[c] == '\n')) {
if (s > mx) {
mx = s;
mc = bc;
}
s = 0;
in = 0;
} else {
++s;
}
}
printf("result: %d, ", mx);
for (int c = mc; c <= mc + mx; ++c) printf("%c", str[c]);
putchar('\n');
}