我用if~else语句编出以下程序,能编译通过,但是得不到理想结果,希望大家能帮忙分析一下,并改正!谢谢!
#include <stdio.h>
void main()
{float a;
printf("Please input your mark:");
scanf("%f",&a);
if(90<=a<=100)
{
printf("Your grade is 'A'");
}
else if(80<=a<90)
{
printf("Your grade is 'B'");
}
else if(70<=a<80)
{
printf("Your grade is 'C'");
}
else if(60<=a<70)
{
printf("Your grade is 'D'");
}
else if(0<=a<60)
{
printf("Your grade is 'E'");
}
else if(a>100)
{
printf("Error");
}
else if(a<0)
{
printf("Error");
}
getch();
}
----------------解决方案--------------------------------------------------------
if(90<=a<=100)
改为:if(90<=a && a<=100)
以此类推.
----------------解决方案--------------------------------------------------------
if(90<=a<=100)
C语言是不能这样表达的- -。。。。。
而且用if来写太麻烦了吧
用swich
case来写比较简单一点
----------------解决方案--------------------------------------------------------
可以这样写
得结果会和想象中不同
例如:
1<2<3的结果是:1
1<-1<3的结果还是:1
----------------解决方案--------------------------------------------------------
if(90<=a<=100)
改为:if(90<=a && a<=100)
以此类推.
谢谢!按照你说的,我又重新修改了一下,编译通过了!非常感谢!!
----------------解决方案--------------------------------------------------------
我也是犯过这样的错误
----------------解决方案--------------------------------------------------------
首先呢,我是推荐你用switch来做
当然你用if else也可以,比较烦琐,可读性也不高
然后,我推荐给你一种方法:
你看你题目的要求:
90分以上的为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E
换句话说就是,你只用到十位和百位上的数字,个位上的数字,你不管
那么你可以将输入的分数除10以后,在取整数
比如:你的输入的分数是75;那么按照上边的,先除10,得7.5,再取整(int),得7,显示结果就是C!
这个方法可以在switch用,也可以在if else中使用
比如:
if(a==90)printf("A");
else if(a==80)printf("B");……
----------------解决方案--------------------------------------------------------
首先呢,我是推荐你用switch来做
当然你用if else也可以,比较烦琐,可读性也不高
然后,我推荐给你一种方法:
你看你题目的要求:
90分以上的为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E
换句话说就是,你只用到十位和百位上的数字,个位上的数字,你不管
那么你可以将输入的分数除10以后,在取整数
比如:你的输入的分数是75;那么按照上边的,先除10,得7.5,再取整(int),得7,显示结果就是C!
这个方法可以在switch用,也可以在if else中使用
比如:
if(a==90)printf("A");
else if(a==80)printf("B");……
我用switch...break语句编译过,能通过!就是用你所说的这个方法!但是,用if else却犯了上面的错误!
----------------解决方案--------------------------------------------------------
我用switch...break语句编译过,能通过!就是用你所说的这个方法!但是,用if else却犯了上面的错误!
你取整了没有?
比如你定义分数为fenshu:
(int)fenshu;
if(fenshu==9)printf("A");
else if……
你是这样写得吗?
----------------解决方案--------------------------------------------------------
你取整了没有?
比如你定义分数为fenshu:
(int)fenshu;
if(fenshu==9)printf("A");
else if……
你是这样写得吗?
哦!我再修改一下吧!
----------------解决方案--------------------------------------------------------