题目内容:
下面代码的功能是将百分制成绩转换为5分制成绩
具体功能是:如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是a,或者102,或-45等),则程序输出 Input error!,否则将其转换为5分制输出。
#include <stdio.h>
int main()
{
printf("Please input score:\n");
int score,s;
char grade;
printf("%d",s); //
scanf("%d",&score);
s=score/10;
printf("%d",s); //
switch(s)
{
case 10:
case 9: grade='A'; printf("grade: %c\n",grade);break;
case 8: grade='B'; printf("grade: %c\n",grade);break;
case 7: grade='C'; printf("grade: %c\n",grade);break;
case 6: grade='D'; printf("grade: %c\n",grade);break;
case 5:
case 4:
case 3:
case 2:
case 1:grade='E';printf("grade: %c\n",grade);break;
default:printf("Input error!\n");
}
return 0;
}
这一个代码运行输入a 后 通过输出可以看到 赋值前s为0 赋值后s为0 输出Input error!
#include <stdio.h>
int main()
{
printf("Please input score:\n");
int score,s;
char grade;
printf("%d",s);
scanf("%d",&score);
s=score/10;
printf("%d",s);
switch(s)
{
case 10:
case 9: break;
case 8:break;
case 7: break;
case 6:break;
case 5:
case 4:
case 3:
case 2:
case 1:printf("case1\n");break;
default:printf("Input error!\n");
}
return 0;
}
这一个代码运行输入a 后 通过输出可以看到 赋值前s为0 赋值后s为1 输出case1
为什么这两个代码运行后输入一样 赋值前s一样 而进入的case不一样呀