c语言编写程序从键盘输入5个学生的信息,包括学生学号、姓名、性别、出生年月及成绩,用结构体数组保存学生的信息,要求用函数实现结构体数组的输入输出及求成绩最高学生的序号。
时间: 2023-12-16 16:15:42 浏览: 69
C语言利用结构体数组实现学生成绩管理系统
5星 · 资源好评率100%
好的,这是一个关于C语言的问题,下面是代码实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STU 5 // 学生数量
struct student {
char id[10]; // 学号
char name[20]; // 姓名
char sex[10]; // 性别
char birth[20];// 出生日期
float score; // 成绩
};
// 输入学生信息
void input_stu(struct student stu[], int n) {
for (int i = 0; i < n; i++) {
printf("请输入第%d个学生的信息:\n", i + 1);
printf("学号:");
scanf("%s", stu[i].id);
printf("姓名:");
scanf("%s", stu[i].name);
printf("性别:");
scanf("%s", stu[i].sex);
printf("出生日期:");
scanf("%s", stu[i].birth);
printf("成绩:");
scanf("%f", &stu[i].score);
}
}
// 输出学生信息
void output_stu(struct student stu[], int n) {
printf("学号\t姓名\t性别\t出生日期\t成绩\n");
for (int i = 0; i < n; i++) {
printf("%s\t%s\t%s\t%s\t%.2f\n", stu[i].id, stu[i].name, stu[i].sex, stu[i].birth, stu[i].score);
}
}
// 求成绩最高学生的序号
int max_score_stu(struct student stu[], int n) {
float max_score = stu[0].score;
int max_stu_index = 0;
for (int i = 1; i < n; i++) {
if (stu[i].score > max_score) {
max_score = stu[i].score;
max_stu_index = i;
}
}
return max_stu_index;
}
int main() {
struct student stu[MAX_STU];
input_stu(stu, MAX_STU);
output_stu(stu, MAX_STU);
int max_stu_index = max_score_stu(stu, MAX_STU);
printf("成绩最高的学生是:%s,序号为%d\n", stu[max_stu_index].name, max_stu_index + 1);
return 0;
}
```
上述代码中,通过结构体数组来保存学生信息,通过 `input_stu` 函数输入学生信息,通过 `output_stu` 函数输出学生信息,通过 `max_score_stu` 函数求成绩最高学生的序号。在 `main` 函数中,调用以上三个函数来实现程序功能。
阅读全文