通过键盘输入全班所有N学名生M门课的成绩;求每名学生的平均成绩;每门课的平均成绩。(提示:使用符号常量指定学生数和课程数:#define N 3 #define M 5)
时间: 2024-12-19 13:16:46 浏览: 6
为了完成这个任务,你需要定义两个符号常量`N`(表示学生数)和`M`(表示课程数),然后创建一个二维数组来存储每个学生的所有课程成绩。接着,你可以遍历数组计算每位学生的平均成绩以及每门课程的平均成绩。以下是一个简单的C程序示例:
```c
#include <stdio.h>
#define N 3
#define M 5
// 声明结构体用于存储学生信息
typedef struct {
char name[N][20]; // 学生姓名
int scores[M]; // 成绩数组
} Student;
int main() {
// 初始化学生数据
Student students[N];
for (int i = 0; i < N; i++) {
printf("请输入学生 %d 的名字:\n", i + 1);
scanf("%s", students[i].name);
printf("请输入学生 %d 的 %d 科目成绩:\n", i + 1, M);
for (int j = 0; j < M; j++) {
scanf("%d", &students[i].scores[j]);
}
printf("\n");
}
// 计算每位学生的平均成绩
for (int i = 0; i < N; i++) {
float total_score = 0;
for (int j = 0; j < M; j++) {
total_score += students[i].scores[j];
}
float avg_score = total_score / M;
printf("学生 %s 的平均成绩: %.2f\n", students[i].name, avg_score);
}
// 计算每门课的平均成绩
float course_totals[M] = {0};
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
course_totals[j] += students[i].scores[j];
}
}
for (int j = 0; j < M; j++) {
float avg_course_score = course_totals[j] / N;
printf("课程 %d 的平均成绩: %.2f\n", j + 1, avg_course_score);
}
return 0;
}
```
运行这个程序后,按照提示输入每个学生的名字和各科成绩,程序将会输出每位学生的平均成绩以及每门课程的平均成绩。
阅读全文