Приветствую Вас Гость | RSS

Язык программирования С

Суббота, 04.05.2024, 09:58
Главная » 2010 » Март » 9 » 1.5.4. Подсчет слов. Упражнение 1.11.
23:15
1.5.4. Подсчет слов. Упражнение 1.11.

Упражнение 1.11. Как бы вы протестировали программу подсчета слов? Какого рода входной поток скорее всего выявит ошибки в программе (если таковые есть)?

Дана программа:

/* подсчет строк, слов и символов во входном потоке */

#include "stdafx.h"
#define IN 1 /* внутри слова */
#define OUT 0 /* снаружи слова */

int main()
{

int c, state; // символ, состояние
int nl, nw, nc; // новая строка, новое слово, новый символ

state = OUT;
nl = nw = nc = 0;
while ((c = getchar()) != EOF) {

++nc;
if (c == '\n')

++nl;

if (c == ' ' || c == '\n' || c == '\t')

state = OUT;

else if (state == OUT) {

state = IN;
++nw;

}

}
printf("\n%d new characters\n%d new lines\n%d new words\n", nc, nl, nw);

}

Тестируем программу:

Тест

Программа утверждает, что мы напечатали 5 слов, на самом же деле слов здесь нет.
Вывод: ошибки выявит числовой входной поток или поток специальных символов.

Просмотров: 3135 | Добавил: brainfrog | Теги: упражнение, подсчет слов, программа | Рейтинг: 3.0/4
Всего комментариев: 1
1 Pershin  
0
Что за чепуха тут написана? На странице 33 дается определение "слова": "последовательность символов, не содержащая пробелов, табуляций и символов новой строки".

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]