马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在做一个课后题:给出一个百分制的成绩,要求输出成绩等级,90分以上为A,80-89为B,70-79为C,60-69为D,低于60为E。
我分别写了两个(其实只是改变了else if里面内容的顺序,结果却完全不同,按逻辑应该结果一样的):
1.正确结果代码(就叫first吧):
#include<stdio.h>
int main(void)
{
int score;
printf("请输入成绩:");
scanf("%d",&score);
if(score>=90) printf("%d的成绩等级为A",score);
else if(score<60) printf("%d的成绩等级为E",score);
else if(60<=score<=69) printf("%d的成绩等级为D",score);
else if(70<=score<=79) printf("%d的成绩等级为C",score);
else printf("%d的成绩等级为B",score);
return 0;
}
2.与预期不一样的代码(second):
#include<stdio.h>
int main(void)
{
int score;
printf("请输入成绩:");
scanf("%d",&score);
if(score>=90) printf("%d的成绩等级为A",score);
else if(80<=score<=89) printf("%d的成绩等级为B",score);
else if(70<=score<=79) printf("%d的成绩等级为C",score);
else if(60<=score<=69) printf("%d的成绩等级为D",score);
else printf("%d的成绩等级为E",score);
return 0;
}
两个运行(使用的编译器为DEV C++),输入34
第一个first代码成功输出等级E
但第二个second代码却输出等级B
请问是什么原因?
第二个second代码问题出在哪里?
是这样的。在C中写区间不可以偷懒,只能两个相比
组合判断需要用到以下逻辑符号
与&& 或|| 非!
|