打印输入中单词长度的水平直方图

i945800687 2011-08-12 04:27:38

#include<stdio.h>

#define MAXHIST 15
#define MAXWORD 11
#define IN 1
#define OUT 0

main()
{
int c, i, nc, state;
int len;
int maxvalue;
int ovflow;
int wl[MAXWORD];

state = OUT;
nc = 0;
ovflow = 0;
for (i = 0; i < MAXWORD; ++i)
wl[i] = 0;

while ((c=getchar()) != EOF) {
if (c == ' ' || c == '\n' || c == '\t') {
state = OUT;
if (nc > 0)
if (nc < MAXWORD)
++wl[nc];
else
++ovflow;
nc = 0;
} else if (state == OUT) {
state = IN;
nc = 1;
} else
++nc;
}
maxvalue = 0;
for (i = 1; i < MAXWORD; ++i)
if (wl[i] > maxvalue)
maxvalue = wl[i];

for (i = 1; i < MAXWORD; ++i) {
printf("%5d - %5d : ", i, wl[i]);
if (wl[i] > 0) {
if ((len = wl[i] * MAXHIST / maxvalue) <= 0)
len = 1;
} else
len = 0;
while (len > 0) {
putchar('*');//这里是一个‘*’,但是打印出来不规律
--len;
}
putchar('\n');
}
if (ovflow > 0)
printf("There are %d words >= %d\n", ovflow, MAXWORD);
}




上面注释的地方,该如何解决
...全文
205 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
i945800687 2012-04-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
运行正常,是水平直方图,没有出现楼主所说的问题。
[/Quote]
嗯,是的,我好像把代码发错了
hting104 2012-04-11
  • 打赏
  • 举报
回复
运行正常,是水平直方图,没有出现楼主所说的问题。
i945800687 2011-08-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xin_wu_hen 的回复:]
看你这个一行注释都没有的代码,实在浪费时间,因为我不得不猜测某些变量和数组的作用。拜托,写代码的过程中注释一下好吗
[/Quote]



下次记得注释



结帖
xin_wu_hen 2011-08-12
  • 打赏
  • 举报
回复
看你这个一行注释都没有的代码,实在浪费时间,因为我不得不猜测某些变量和数组的作用。拜托,写代码的过程中注释一下好吗

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧