请用c语言实现并写出以下代码:数据结构课程预计本学期布置32次作业,请记录统计每位同学作业中成绩。
时间: 2024-05-14 10:13:38 浏览: 32
034 用“结构”统计学生成绩C语言
复杂度?
以下是代码示例:
```c
#include <stdio.h>
#define MAX_STUDENT 100 // 最大学生人数
#define MAX_HW 32 // 最大作业数
struct Student {
char name[20]; // 学生姓名
int score[MAX_HW]; // 存储作业成绩
};
int main()
{
struct Student students[MAX_STUDENT]; // 学生数组
int n; // 学生人数
int i, j; // 循环变量
// 输入学生人数
printf("请输入学生人数:");
scanf("%d", &n);
// 输入学生信息(姓名)
for (i = 0; i < n; i++) {
printf("请输入第 %d 位学生的姓名:", i + 1);
scanf("%s", students[i].name);
}
// 输入每位学生的作业成绩
for (i = 0; i < n; i++) {
printf("请输入 %s 的作业成绩:\n", students[i].name);
for (j = 0; j < MAX_HW; j++) {
printf("第 %d 次作业:", j + 1);
scanf("%d", &students[i].score[j]);
}
}
// 输出每位学生的作业成绩统计信息
for (i = 0; i < n; i++) {
int sum = 0; // 每位学生的作业总成绩
printf("%s 作业成绩:\n", students[i].name);
for (j = 0; j < MAX_HW; j++) {
printf("第 %d 次作业: %d\n", j + 1, students[i].score[j]);
sum += students[i].score[j];
}
printf("总成绩: %d\n", sum);
}
return 0;
}
```
该代码使用结构体来存储每位学生的作业成绩,输入和输出信息。其中,对每位学生的作业成绩进行统计时,使用循环计算总成绩。由于两个循环嵌套,时间复杂度为 O(nm),其中 n 表示学生人数,m 表示作业数量,空间复杂度为 O(nm)。
阅读全文