程序设计:输入10名学生语文、数学、外语课成绩,计算每名学生3门课的平均成绩,输出每个人各科成绩及平均成绩,并分析3门课程的优秀率(90分以上为优秀)。 要点分析:定义二维数组,循环输入成绩,统计并输出统计结果。
时间: 2024-05-03 13:17:20 浏览: 79
以下是一个简单的程序设计示例,用于实现输入10名学生的语文、数学、外语课成绩,计算每名学生3门课的平均成绩,输出每个人各科成绩及平均成绩,并分析3门课程的优秀率(90分以上为优秀):
```c
#include <stdio.h>
#define N 10 // 学生人数
#define M 3 // 课程数
int main() {
int scores[N][M]; // 存储学生成绩的二维数组
double avg[N]; // 存储学生平均成绩的一维数组
int excellent[M] = {0}; // 存储每门课程优秀人数的数组
// 输入学生成绩
for (int i = 0; i < N; i++) {
printf("请输入第%d位学生的语文、数学、外语成绩:\n", i+1);
scanf("%d %d %d", &scores[i][0], &scores[i][1], &scores[i][2]);
avg[i] = (scores[i][0] + scores[i][1] + scores[i][2]) / 3.0; // 计算平均成绩
}
// 输出每个人各科成绩及平均成绩
printf("姓名\t语文\t数学\t外语\t平均成绩\n");
for (int i = 0; i < N; i++) {
printf("学生%d\t%d\t%d\t%d\t%.2f\n", i+1, scores[i][0], scores[i][1], scores[i][2], avg[i]);
}
// 统计每门课程的优秀人数
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
if (scores[i][j] >= 90) {
excellent[j]++;
}
}
}
// 输出每门课程的优秀率
printf("每门课程的优秀率为:\n");
printf("语文:%.2f%%\n", excellent[0] * 1.0 / N * 100);
printf("数学:%.2f%%\n", excellent[1] * 1.0 / N * 100);
printf("外语:%.2f%%\n", excellent[2] * 1.0 / N * 100);
return 0;
}
```
这个程序定义了一个二维数组 `scores` 来存储学生成绩,一个一维数组 `avg` 来存储学生平均成绩,以及一个数组 `excellent` 来统计每门课程的优秀人数。程序首先通过循环输入学生成绩,并计算平均成绩。然后程序输出每个人各科成绩及平均成绩。最后程序统计每门课程的优秀人数,并输出每门课程的优秀率。
需要注意的是,本程序中的数据类型都比较简单,没有考虑输入错误的情况,实际使用中需要根据具体需求进行修改和完善。
阅读全文