C语言问题 成绩分类 哪里错了 我是初学者 找不出问题

#include <stdio.h>
main()
{
int a;
char b,c,d,e,f;
b='A';
c='B';
d='C';
e='D';
f='E';
while(scanf("%d",&a)!=EOF)
{
printf("%d",a);
if(0<=a<=59)
{
printf("%c\n",f);
}
else if(60<=a<=69)
{
printf("%c\n",e);
}
else if(70<=a<=79)
{
printf("%c\n",d);
}
else if(80<=a<=89)
{
printf("%c\n",c);
}
else if(90<=a<=100)
{
printf("%c\n",b);
}
else if(a>100)
{
printf("Score is error!\n");
}
}
}

第1个回答  2013-03-24
程序已改,请看注释。如有疑问,可以追问;如果满意,请采纳。
#include <stdio.h>
main()
{
int a;
char b,c,d,e,f;
b='A';
c='B';
d='C';
e='D';
f='E';
while(scanf("%d",&a)!=EOF)
{
printf("%d",a);
if(a>=0&&a<=59)//不可以表达为0<=a<=59
{
printf("%c\n",f);
}
else if(a>=60&&a<=69)//不可以表达为60<=a<=69
{
printf("%c\n",e);
}
else if(a>=70&&a<=79)//不可以表达为70<=a<=79
{
printf("%c\n",d);
}
else if(a>=80&&a<=89)//不可以表达为80<=a<=89
{
printf("%c\n",c);
}
else if(a>=90&&a<=100)//不可以表达为90<=a<=100
{
printf("%c\n",b);
}
else if(a>100)
{
printf("Score is error!\n");
}
}
}
第2个回答  2013-03-24
if(90<=a<=100)
在你的程序中只要是用这种大小判断连写的都是错误的。
C语言中不同于数学,不能怎样写。应该改成这样的:
if(90<=a && a<=100)
一定要写成这样的两个式子,其中的 && 符号,是逻辑与运算符。
不明白的可以再问我,我也是做这一块的。本回答被提问者采纳
第3个回答  2013-03-24
#include <stdio.h>
main()
{
int a;
char b,c,d,e,f;
b='A';
c='B';
d='C';
e='D';
f='E';
while(scanf("%d",&a)!=EOF)
{
printf("%d",a);
if(0<=a&&a<=59)
{
printf("%c\n",f);
}
else if(60<=a&&a<=69)
{
printf("%c\n",e);
}
else if(70<=a&&a<=79)
{
printf("%c\n",d);
}
else if(80<=a&&a<=89)
{
printf("%c\n",c);
}
else if(90<=a&&a<=100)
{
printf("%c\n",b);
}
else if(a>100)
{
printf("Score is error!\n");
}
}
}
第4个回答  2013-03-24
if(0<=a<=59)
这里面的条件不能连写,要写成
if(0<=a && a<=59)
相似回答
大家正在搜