我写了一个判断成绩等级的程序:
#include <stdio.h>
void main()
{
int a,i;
printf("请输入分数:");
scanf("%d",&a);
if(90<=a<100) i=0;
else i=1;
switch(i)
{
case 0:
printf("成绩等级为A\n");
break;
case 1:
printf("成绩等级为B\n");
break;
}
}
这个程序有问题,就是无论我输入什么数字,最后的结果都是"成绩等级为A"。
但是我有个同学,他是这样想的:
#include <stdio.h>
void main()
{
int a,i;
printf("请输入分数:");
scanf("%d",&a);
if(90<=a&&a<100) i=0;
else i=1;
switch(i)
{
case 0:
printf("成绩等级为A\n");
break;
case 1:
printf("成绩等级为B\n");
break;
}
}
他用了个逻辑运算符,我输入[90,100)这个区间的数字时结果为"成绩等级为A",输入这个区间以外的数字就能成功得到"成绩等级为B"这个结果,我搞不懂这是为什么。
所以我有个疑问,if语句的那个小括号里到底能填什么,我也是刚开始学,不是很懂,我用的编译器是visual c++。如果能告诉我if语句该怎么用,那就更好啦!