目录
题目
1、提示用户输入百分制成绩,将其转换为等级成绩A、B、C、D和F。分数为[90,100]时等级成绩为A,[80,90)为B,[70,80)为C,[60,70)为D,60以下为F。
如果用户未输入0~100之间的有效成绩,给出出错信息。
2、更进一步,实现可以重复输入,直到输入某个值退出。
题目(1)思路
1、提示用户输入一个百分制的成绩,也就是0~100的整数;并把这个数存到一个变量grade中;
2、用 if()对grade进行筛选,对于小于0或大于100的数据,输出错误信息,退出;
3、用switch()对grade的值进行选择;
可见当0<grade≤10时,grade/10=0.几,但是因为grade是整形数据,运算后不保留小数点后数据,则grade/10=0;
10<grade≤20时,grade/10=1;
20<grade≤30时,grade/10=2;
其他区间类似;
4、在switch()的每一条case语句中, 执行相应的printf()内容;
题目(1)运行结果
题目(1)源代码
#include<stdio.h>
int main(){
int grade=-1;
printf("请输入一个百分制整数成绩:");
scanf("%d", &grade);
if(grade<0 || grade>100){
printf(" 分数无效!");
return 1;
}
switch(grade/10){
case 9:case 10:
printf(" A");
break;
case 8:
printf(" B");
break;
case 7:
printf(" C");
break;
case 6:
printf(" D");
break;
default:
printf(" E");
break;
}
return 0;
}
题目(2)思路
要重复输入,就是说要加一个循环;这个循环里,要有题目1代码的所有功能;
题目(2)运行结果
题目(2)源代码
putchar(‘A’);和 printf(“A”);是一样的,只是后者能输出字符串,前者只能输出一个字符;
我这里只需要输出一个字符,所以把代码改写成putchar()了;
#include<stdio.h>
int main(){
int a;
do{
printf("\n请输入一个百分制分数:\n");
scanf("%d", &a);
if(90<=a && a<=100)
putchar('A');
else if(80<=a && a<90)
putchar('B');
else if(70<=a && a<80)
putchar('C');
else if(60<=a && a<70)
putchar('D');
else if(0<=a && a<60)
putchar('E');
else{
printf("无效分数!退出!\n");
break;
}
}while(1);
return 0;
}