c语言程序问题,求高人解答疑惑,谢谢!!!!!!

#include "stdio.h"
void main()
{
int a;
printf("请输入一个数");
scanf("%d",&a) ;
if(a>80)
printf("好");
if(a>90)printf("很好");
else printf("差");
}
为什么我输入90的时候他竟然显示“ 好差”呢?

逻辑顺序不对

#include "stdio.h"
void main()
{
int a;
printf("请输入一个数");
scanf("%d",&a) ;
if(a>90)
printf("很好");
else
{
if(a>80)
printf("好");
else
printf("差");
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-07
它是这样的,你输入的90, if(a>80) printf("好"); 它就会先输出一个好
然后if(a>90)这个不满足。
if(a>90)
printf("很好");
else
printf("差");
这两条语句是一个if ... else 语句它不满足if(a>90)就会自动执行后面的else语句,所以接着会输出一个差。呵呵。
第2个回答  2012-04-07
#include "stdio.h"
void main()
{
int a;
printf("请输入一个数");
scanf("%d",&a) ;
if(a>90)printf("很好");
else
if(a>80)
printf("好");
else printf("差");
}
第3个回答  2012-04-07
90满足>80的条件,然后又不满足>90的条件,所以就是好差了,else总是与最近的if配对。
第4个回答  2012-04-07
90应该在80里面判断