请大佬们帮我解决一下这个问题:编译之后不管输入什么,结果都是error。
#include <stdio.h>#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
int grade;
printf("Grade is:");
scanf("%d",&grade);
switch(grade)
{ case'A':printf("85~100\n");
case'B':printf("70~84\n");
case'C':printf("60~69\n");
case'D':printf("<60\n");
default:printf("error\n");
}
return 0;
} 发现问题在哪了...
只能输入ABCD对应的ASCII码...
henry1 发表于 2018-3-4 20:36
发现问题在哪了...
只能输入ABCD对应的ASCII码...
不过有大佬知道case后面能否加一个范围吗?
把scanf中的%d改为%c
case语句每条后面加一条break语句
通过某些不加break来实现范围判断 #include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
char grade;
printf("Grade is:");
scanf("%c",&grade);
switch(grade)
{ case'A':printf("85~100\n");break;
case'B':printf("70~84\n");break;
case'C':printf("60~69\n");break;
case'D':printf("<60\n");break;
default:printf("error\n");break;
}
return 0;
}
//希望采纳{:5_105:} 是的 每一个case后面都要加上一个break指令 549444387@qq.co 发表于 2018-3-6 15:12
是的 每一个case后面都要加上一个break指令
如果不加break的话都会把指令default运行了
页:
[1]