请运用C语言编写评定成绩等级的函数 函数名:类似wlbgrade 形参:仅一个整型指针类型的形参,用于传递实参中成绩(分数)在内存中的地址 返回值:字符串指针类型,用于返回评定的成绩等级字符串(优秀、良好、中等、及格、不及格)在内存中的地址 功能:根据形参所指向的成绩(分数)用多分支if或switch语句判断其等级,等级以字符串的形式保存在字符数组内。提示:要使用string.h及strcpy函数,返回等级字符串的地址 参考右图所示运行时截图编写main函数,通过while循环逐一输入成绩(分数)、评定并显示相应的成绩等
时间: 2024-02-15 11:03:02 浏览: 69
以下是实现 wlbgrade 函数和 main 函数的代码:
```
#include <stdio.h>
#include <string.h>
char* wlbgrade(int* score) {
char grade[10];
if (*score >= 90) {
strcpy(grade, "优秀");
} else if (*score >= 80) {
strcpy(grade, "良好");
} else if (*score >= 70) {
strcpy(grade, "中等");
} else if (*score >= 60) {
strcpy(grade, "及格");
} else {
strcpy(grade, "不及格");
}
return grade;
}
int main() {
int score;
char* grade;
while (1) {
printf("请输入成绩(分数):");
scanf("%d", &score);
getchar(); // 消耗输入缓冲区中的回车符
if (score < 0 || score > 100) {
printf("成绩必须在0到100之间,请重新输入。\n");
continue;
}
grade = wlbgrade(&score);
printf("成绩等级为:%s\n", grade);
}
return 0;
}
```
在上面的代码中,wlbgrade 函数使用多分支 if 语句判断成绩等级,并将等级字符串保存在本地字符数组 grade 中。然后使用 strcpy 函数将该字符数组中的内容复制到堆中的字符串指针中,并返回该指针的地址。
在 main 函数中,使用 while 循环逐一输入成绩,并使用 getchar 函数消耗输入缓冲区中的回车符。如果输入的成绩不在 0 到 100 的范围内,则提示错误,并继续循环。否则,调用 wlbgrade 函数获取该成绩对应的等级字符串指针,并输出该字符串。
阅读全文