有如下程序,函数Fun1实现将百分制成绩转换为五级计分制成绩,主程序main()调用Fun1,请先分析指出程序中存在的错误,然后修正错误,写出完整正确的程序。 void Fun1(int score) { if ( score >= 90 ) printf(“优秀\n”); if ( ( score < 80 ) && ( score >= 70 ) ) printf(“中等\n”); if ( (score <70) && ( score > 60 )) printf(“及格\n”); if (score < 60) printf(“不及格\n”); } void main() { char number; scanf(“%c”,&number); Fun1(number); }
时间: 2023-12-25 16:02:35 浏览: 76
程序存在以下错误:
1. 函数Fun1中score参数应该是整型,但是在主程序中用字符型变量接收输入,需要将其转换为整型。
2. 函数Fun1中的条件判断有误,当分数等于80或60时不会有输出。
修正后的程序如下:
```
#include <stdio.h>
void Fun1(int score) {
if (score >= 90) {
printf("优秀\n");
} else if (score >= 80) {
printf("良好\n");
} else if (score >= 70) {
printf("中等\n");
} else if (score >= 60) {
printf("及格\n");
} else {
printf("不及格\n");
}
}
int main() {
int number;
scanf("%d", &number);
Fun1(number);
return 0;
}
```
修正后的程序中,将输入的字符型变量改为整型变量,修正了函数Fun1中的条件判断,并添加了大括号使代码更加清晰易读。
阅读全文