c语言编程输入三个同学四门课成绩,输出每一个同学的平均分,每一门课程的平均分
时间: 2024-12-24 14:40:22 浏览: 8
在 C 语言中,你可以通过结构体来存储每个同学的信息,并创建一个数组来表示所有同学。首先,定义一个结构体 `Student` 来包含姓名和四门课的成绩。然后,读取所有学生的数据并计算他们的平均分以及每门课的平均分。以下是一个简单的示例:
```c
#include <stdio.h>
// 定义学生结构体
struct Student {
char name[50];
int scores[4]; // 存储四门课的成绩
};
void calculateAverage(struct Student students[], int n) {
double totalScore = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < 4; j++) {
totalScore += students[i].scores[j];
}
double avgStudent = totalScore / 4;
printf("学生 %s 的平均分为 %.2f\n", students[i].name, avgStudent);
totalScore = 0; // 重置总分,准备计算下一位同学
}
// 计算每门课的平均分
double courseAverages[4] = {0};
for (int i = 0; i < n; i++) {
courseAverages[0] += students[i].scores[0];
courseAverages[1] += students[i].scores[1];
courseAverages[2] += students[i].scores[2];
courseAverages[3] += students[i].scores[3];
}
for (int j = 0; j < 4; j++) {
double avgCourse = courseAverages[j] / n;
printf("课程%d的平均分为 %.2f\n", j+1, avgCourse);
}
}
int main() {
struct Student students[3]; // 假设只有三位同学
int numStudents;
printf("请输入学生人数:");
scanf("%d", &numStudents);
// 读取每位同学的成绩
for (int i = 0; i < numStudents; i++) {
printf("请输入学生 %d 的名字:", i+1);
fgets(students[i].name, sizeof(students[i].name), stdin); // 注意这里要处理换行符
for (int j = 0; j < 4; j++) {
printf("请输入第%d门课的成绩:", j+1);
scanf("%d", &students[i].scores[j]);
}
}
calculateAverage(students, numStudents);
return 0;
}
```
当你运行这个程序,它会提示用户输入每位同学的名字和各门课成绩,然后分别显示每位同学的平均分和每门课的平均分。
阅读全文