读书人

条件判断有关问题这里为什么用lt;=而不

发布时间: 2013-08-04 18:26:15 作者: rapoo

条件判断问题,这里为什么用<=而不是==
本帖最后由 limuyuan2008 于 2013-07-26 18:33:31 编辑

#include <stdio.h>

#define MAXHIST 20
#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);
}


问题:经测试,换成==也可以正常运行,为什么答案给出的是<=呢?是否有这个必要?
[解决办法]
都是正数,经过乘除,最小也就是0.不会出现小于0的情况,所以== 0 也可以.
另外,贴代码的时候,给点提示,说明一下程序的功能.要不看起来很累.

读书人网 >C++

热点推荐