这是来自 K&R 的一个问题:-
编写一个程序来打印输入中单词长度的直方图。用水平条形绘制直方图很容易;但垂直方向更具挑战性。
我不应该使用任何库函数,因为这只是一个教程介绍!
我为此编写了以下程序,但它有一些错误:-
1)如果单词之间有多个空白字符,则程序无法按预期运行。
2)我怎么知道'k'的最大值我的意思是如何知道输入中有多少个单词?
这是代码: -
#include<stdio.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>
#define MAX_WORDS 100
int main(void)
{
int c, i=0, k=1, ch[MAX_WORDS] = {0};
printf("enter the words:-\n");
do
{
while((c=getchar())!=EOF)
{
if(c=='\n' || c==' ' || c=='\t')
break;
else
ch[i]++;
}
i++;
}
while(i<MAX_WORDS);
do
{
printf("%3d|",k);
for(int j=1;j<=ch[k];j++)
printf("%c",'*');
printf("\n");
k++;
}
while(k<10);
}