成绩评定c语言代码Switch
时间: 2024-10-27 12:08:46 浏览: 42
在C语言中,`switch`语句主要用于基于某个表达式的值来进行条件判断,并执行相应的代码块。它通常用于代替一系列的`if...else if...else`语句,使得程序结构更清晰、简洁。下面是一个简单的成绩评定的示例,假设我们有几种不同的分数范围对应不同的等级:
```c
#include <stdio.h>
int main() {
int score;
printf("请输入学生的分数:");
scanf("%d", &score);
switch (score) {
case 90:
case 100:
printf("优秀\n");
break; // 结束当前case并跳出switch
case 80:
printf("良好\n");
break;
case 60:
case 70:
printf("及格\n");
break;
default:
printf("不及格\n"); // 如果不在上述范围内,则执行default后的代码
break;
}
return 0;
}
相关问题
请使用C语言 利⽤switch语句编写⼀个程序,把⽤数字表示的成绩转化为字⺟表示的等级。使⽤下⾯的等级评定规则:A为90~100,B为80~89,C为70~79,D为60~69,F为0~59。如果成绩⾼于100或低于0显示出错信息。 输出范例: Enter numerical grade: 84 Letter grade: B
以下是使用C语言编写的程序,可以根据输入的数字成绩转换为字母等级:
```c
#include <stdio.h>
int main() {
int grade;
printf("Enter numerical grade: ");
scanf("%d", &grade);
char letterGrade;
switch (grade / 10) {
case 10:
case 9:
letterGrade = 'A';
break;
case 8:
letterGrade = 'B';
break;
case 7:
letterGrade = 'C';
break;
case 6:
letterGrade = 'D';
break;
default:
letterGrade = 'F';
break;
}
if (grade > 100 || grade < 0) {
printf("Error: Invalid grade\n");
} else {
printf("Letter grade: %c\n", letterGrade);
}
return 0;
}
```
输入数字成绩后,程序会根据评定规则将其转换为对应的字母等级,并输出结果。如果输入的成绩超出范围,则会显示错误信息。根据您提供的范例,输入数字成绩为84时,输出的字母等级为B。
请运用C语言编写评定成绩等级的函数 函数名:类似wlbgrade 形参:仅一个整型指针类型的形参,用于传递实参中成绩(分数)在内存中的地址 返回值:字符串指针类型,用于返回评定的成绩等级字符串(优秀、良好、中等、及格、不及格)在内存中的地址 功能:根据形参所指向的成绩(分数)用多分支if或switch语句判断其等级,等级以字符串的形式保存在字符数组内。提示:要使用string.h及strcpy函数,返回等级字符串的地址 参考右图所示运行时截图编写main函数,通过while循环逐一输入成绩(分数)、评定并显示相应的成绩等
以下是实现 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 函数获取该成绩对应的等级字符串指针,并输出该字符串。
阅读全文