Сосчитать количество строк входного потока, которые содержат только один пробел - C (СИ)
Формулировка задачи:
Здравствуйте.
Поставлена задача: Сосчитать количество строк входного потока, которые содержат только один пробел.
Долго воевал с компилятором, отбил все ошибки и предупреждения. Программа запускается и, вообщем-то, работает не так, как надо(считай не работает).
Вот мой код, назовете быдлокодером - да будет так.
Результатом выполнения такой программы будет nl=1, при любом входном потоке.
так же нарисовал схему
Мне чудится ошибка в строке 9, но что тогда ставить вместо EOF?
Взгляните свежим глазом, ЧЯДНТ? Спасибо.
# include <stdio.h> # include <conio.h> int main (void) { int nl,ns,c; nl=0; // counting lines ns=0; // counting spaces c=getchar(); while (c!=EOF) { //EOf - end of file if (c==' ') // space ns++; else { if (c=='\n') //enter { if (ns==1) nl++; } } ns=0; c=getchar(); } if (ns=1, nl=0) //добавка для частного случая { nl++; ns=0; } if (ns==1) //добавка для частного случая nl++; printf("nl=%d", nl); return 0; }
Решение задачи: «Сосчитать количество строк входного потока, которые содержат только один пробел»
textual
Листинг программы
# include <stdio.h> # include <conio.h> int main (void) { int nl,ns,c; nl=0; // counting lines ns=0; // counting spaces c=getchar(); while (c!=EOF) { //EOf - end of file if (c==' ') // space ns++; else { if (c=='\n') { if (ns==1) nl++; } } ns=0; c=getchar(); } printf("nl=%d", nl); getchar (); return 0; }
Объяснение кода листинга программы
В этом коде:
- Объявлены три переменные: nl (количество строк), ns (количество пробелов), c (текущий символ).
- Входящий поток считывается посимвольно.
- Когда встречается пробел, увеличивается значение переменной ns.
- Когда встречается символ новой строки (\n), проверяется значение переменной ns. Если оно равно 1, то увеличивается значение переменной nl.
- После каждой строки значение переменной ns сбрасывается в 0.
- Выводится значение переменной nl.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д