我正在尝试switch
然后if else
。我不知道我错过了哪里,但这不起作用。
这是我的代码:
include<stdio.h>
include<conio.h>
int main()
{
clrscr();
int grade;
printf("Input Grade");
scanf("%d",&grade);
switch(grade<101)
{
case 1:
if (grade>=95)
printf("A+");
else
printf("Invalid");
break;
case 2:
if (grade>=85)
printf("A");
else
printf("Invalid");
break;
default:
printf("Invalid");
}
getch();
}
所以我不知道是怎么回事。只有第一种情况起作用,当我输入的数字低于95'A'时,不是结果。请帮帮我。
答案 0 :(得分:1)
如果您 使用switch
,则应将if else
语句置于switch
之外,以便切换正确的整数值。像这样:
int state = 0;
if ( grade < 101 && grade >= 95 )
state = 1;
else if ( grade < 101 && grade >= 85 )
state = 2;
switch state {
case 1:
printf("A+");
break;
case 2:
printf("A");
break;
default:
printf("invalid");
break;
}
答案 1 :(得分:0)
您可以通过以下方式使用switch语句表达这一点(尽管您可能不想这样做):
switch(grade)
{
case 100:
case 99:
case 98:
case 97:
case 96:
case 95:
printf("A+");
break;
case 94:
case 93:
case 92:
case 91:
case 90:
case 89:
case 88:
case 87:
case 86:
case 85:
printf("A");
break;
default:
printf("Invalid");
//or an if statement if more options are required.
break;
}