我的答案:
照抄此程序 ,观察运行结果,来测试!
初步的测试,nl 即 行数的统计会出现错误,按照\n来计算行数 出容易算少一行,,当我在最后一行的时候 以EOF结束的话,此行将没有计算在内。
没有理解好题目,程序并没有错,题目的意思是想让我知道如何的去测试一个程序可能出现的错误!
答案:满足边界条件的输入情况, 最有助于发现单词计数程序中的错误......省略
顺便把此程序贴上
#include <stdio.h>
#define IN 1
#define OUT 0
int main()
{
int c, nl, nw, nc, state;
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("%d %d %d\n", nl, nw, nc);
}