使用结构体表示某班学生的基本信息(姓名、学号、籍贯、C语言考试成绩),编程输出全班学生的信息并计算
时间: 2023-08-12 19:03:54 浏览: 40
平均成绩和最高分。
以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENT_NUM 100
struct Student {
char name[20];
char id[10];
char hometown[20];
int score;
};
int main() {
struct Student students[MAX_STUDENT_NUM];
int n, i, sum = 0, max_score = -1, max_index = -1;
printf("请输入班级人数:");
scanf("%d", &n);
for (i = 0; i < n; i++) {
printf("请输入第%d个学生的信息:\n", i + 1);
printf("姓名:");
scanf("%s", students[i].name);
printf("学号:");
scanf("%s", students[i].id);
printf("籍贯:");
scanf("%s", students[i].hometown);
printf("C语言考试成绩:");
scanf("%d", &students[i].score);
sum += students[i].score;
if (students[i].score > max_score) {
max_score = students[i].score;
max_index = i;
}
}
printf("全班学生的信息如下:\n");
for (i = 0; i < n; i++) {
printf("姓名:%s\t学号:%s\t籍贯:%s\tC语言考试成绩:%d\n",
students[i].name, students[i].id, students[i].hometown, students[i].score);
}
printf("平均成绩:%f\n", (float)sum / n);
printf("最高分:%d,姓名:%s,学号:%s,籍贯:%s\n",
students[max_index].score, students[max_index].name,
students[max_index].id, students[max_index].hometown);
return 0;
}
```
该程序先通过结构体定义了一个学生的基本信息,然后定义了一个结构体数组 `students` 来存储全班学生的信息。在 `main` 函数中,先从用户输入班级人数,然后循环读取每个学生的信息,同时计算总成绩和最高分。最后输出全班学生的信息、平均成绩和最高分。注意字符串的输入需要使用 `%s` 格式化字符串,并且使用 `scanf` 函数读入时需要指定数组名,不需要使用 `&` 运算符。