用c语言实现,要求按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为70~84分,C等为60~69分,D等为 60分以下。成绩的等级由键盘输入。 要求使用多分支switch语句来实现
时间: 2024-10-19 14:06:52 浏览: 36
在C语言中,你可以使用多分支`switch`语句来根据用户输入的成绩等级输出相应的百分制分数段。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h> // 引入strlen函数来计算字符串长度
void printGrade(int score) {
char grade[5]; // 存储等级的字符数组,大小足够存放'A', 'B', 'C', 'D'
switch (score / 10) { // 按照整十位划分等级
case 10: // A等
strcpy(grade, "A"); // 将'A'复制到grade数组
break;
case 9: // B等
strcpy(grade, "B");
break;
case 8: // C等
strcpy(grade, "C");
break;
default: // D等和未达到及格线
strcpy(grade, "D");
if (score >= 0) {
sprintf(grade + 1, "%d", score); // 若未达到60分,直接显示剩余分数
}
}
printf("百分制分数段:%s %d分\n", grade, score);
}
int main() {
int score;
printf("请输入考试成绩:");
scanf("%d", &score);
printGrade(score);
return 0;
}
```
在这个程序中,我们首先定义了一个`printGrade`函数,接受一个成绩作为参数。`switch`语句依据整数成绩除以10的结果,分别对应四个等级。如果分数低于60分,会在"D"的基础上添加剩余的具体分数。
注意,`default`分支用于处理所有其他情况,包括那些未达到及格线的情况。`sprintf`函数在此用于格式化输出,如果剩余分数小于10,它将在grade数组的第二个位置(即'D'之后)插入分数。
阅读全文