Подсчет количества слов каждой длины в заданном текстовом файле.Слово - это любая подстрока любых символов, кроме пробела и конца строки.Подстрока, которая является словом, должна быть ограничена пробелом, концом строки или концом файла.
Я не понимаю, почему и где моя программа не работает. В нашей системе автоматического тестирования, программа ниже проходит восемь тестов из двадцати (вы не можетесм тесты).
Выходные данные должны быть:
длина слова - количество слов этой длины в тексте
каждое на новой строке в возрастающем порядке.Если количество слов этой длины равно нулю, нам не нужно его печатать.Вывод должен быть записан в файл.
#include <stdio.h>
long int c[99999];
int main() {
FILE *input;
input = fopen("input.txt", "r");
FILE *output;
output = fopen("output.txt", "w");
char state = 0;
int s;
long int l = 0;
for (s = fgetc(input); (s != EOF); s = fgetc(input)) {
if (((s == '\n') || (s == '\0') || (s == ' ')) && (state == 1)) { c[l]++; l = 0; state = 0; }
if (!((s == '\n') || (s == '\0') || (s == ' ')) && (state == 1)) l++;
if (!((s == '\n') || (s == '\0') || (s == ' ')) && (state == 0)) {state = 1; l++;}
}
if ((s == EOF) && (state == 1)) c[l]++;
for (int i = 1; i < 99999; i++) if (c[i] > 0) fprintf(output, "%d - %d\n", i, c[i]);
fclose(input);
fclose(output);
return 0;
}