c语言if条件语句不知道哪儿错了
#include<stdio.h>int main()
{
float score,a;
printf("请输入分数:");
scanf("%f",&score);
if(0>=score||score>=200){
printf("请输入正确的分数\n");
return 0;
}
else{
if(180<=score){
printf("成绩为A\n");
}
if(120<=score<180){
printf("成绩为B\n");
}
if(score<120)printf("sadfdsfsdafadsfdsafdfaf\n");
}
}
输入190会输出成绩为B和成绩为A
编译器用的是gcc
SugarCane88 发表于 2020-4-25 16:28
我分析您的代码发现几个问题:
1. a 没有被用到;
2. int main() 没有返回值;
你指出的第三点,不是不合适,而是本身写法就不对。
C语言中不能连着比较数的大小,这样会把前面的结果与后面的比较,
120<=score<180会先进行120<=score,其结果再和180进行比较,,而前面的比较结果为0或1,再与180 比较肯定为真啊,所以不管你输入多少,这个if判断都为真 我分析您的代码发现几个问题:
1. a 没有被用到;
2. int main() 没有返回值;
3. 120<=score<180 这样写不合适。
#include<stdio.h>
int main()
{
float score;
printf("请输入分数:");
scanf("%f",&score);
if(score<=0||score>=200){
printf("请输入正确的分数\n");
return 0;
}
else{
if(score>=180){
printf("成绩为A\n");
}
if(score>=120 && score<180){
printf("成绩为B\n");
}
if(score<120)
printf("sadfdsfsdafadsfdsafdfaf\n");
}
return 0;
} 分段完全可以直接if…else…何必多个if呢。
另外return 0直接写到最后面就行了。因为你的外层if…else…之后没有其他语句了。一个return就可以吧if和else两种情况都涵盖在内了
#include<stdio.h>
int main()
{
float score,a;
printf("请输入分数:");
scanf("%f",&score);
if(0>=score||score>=200){
printf("请输入正确的分数\n");
}
else{
if(180<=score){
printf("成绩为A\n");
}
else if(120<=score){
printf("成绩为B\n");
}
else
printf("sadfdsfsdafadsfdsafdfaf\n");
}
return 0;
} sunrise085 发表于 2020-4-25 17:09
分段完全可以直接if…else…何必多个if呢。
另外return 0直接写到最后面就行了。因为你的外层if…else…之 ...
您回答的详细,赞。
页:
[1]