输入m个学生n门课的成绩,分别输出每个学生的平均成绩(保留2位小数)。
时间: 2024-10-28 15:06:21 浏览: 35
c代码-编程实现:输入10个学生的6门课成绩,分别求出每个学生的平均成绩。
为了实现这个功能,你需要首先定义一个结构体来存储学生的信息,包括姓名和成绩数组。然后读取学生的数量(m)和课程的数量(n),接着为每个学生读取成绩并计算平均分。这里是一个简单的C程序示例:
```c
#include <stdio.h>
#include <string.h>
// 定义学生结构体
typedef struct {
char name[50];
float scores[n]; // 假设n已知
} Student;
void calculate_average(Student student) {
float sum = 0;
for (int i = 0; i < n; i++) {
sum += student.scores[i];
}
float average = sum / n;
printf("学生 %s 的平均成绩: %.2f\n", student.name, average);
}
int main() {
int m, n;
printf("请输入学生数量(m): ");
scanf("%d", &m);
// 假设你已经从用户那里获取了n和每门课程的名称
printf("请输入每门课程的数量(n): ");
scanf("%d", &n);
// 初始化学生数组
Student students[m];
// 读取每个学生的名字和成绩
for (int i = 0; i < m; i++) {
scanf("%s", students[i].name);
for (int j = 0; j < n; j++) {
scanf("%f", &students[i].scores[j]);
}
}
// 计算并打印每个学生的平均成绩
for (int i = 0; i < m; i++) {
calculate_average(students[i]);
}
return 0;
}
```
在这个程序中,你需要确保`scanf`能够正确地读取和解析学生的姓名和成绩,并且`n`已经被定义并且与实际课程数量一致。
阅读全文