c语言编写程序从键盘输入5个学生的信息,包括学生学号、姓名、性别、出生年月及成绩,用结构体数组保存学生的信息,要求用函数实现结构体数组的输入输出及求成绩最高学生的序号。
时间: 2023-12-16 17:25:06 浏览: 158
好的,这是一个关于结构体和函数的问题,下面是代码实现:
```c
#include <stdio.h>
#define SIZE 5 // 定义结构体数组长度
// 定义结构体Student
struct Student {
int id;
char name[20];
char sex;
int birth;
float score;
};
// 定义函数input,用于输入结构体数组
void input(struct Student *students, int size) {
printf("请按照以下格式输入学生信息:\n学号 姓名 性别(男/女) 出生年份 成绩\n");
for(int i = 0; i < size; i++) {
scanf("%d%s %c%d%f", &students[i].id, students[i].name, &students[i].sex, &students[i].birth, &students[i].score);
}
}
// 定义函数output,用于输出结构体数组
void output(struct Student *students, int size) {
printf("学号\t姓名\t性别\t出生年份\t成绩\n");
for(int i = 0; i < size; i++) {
printf("%d\t%s\t%c\t%d\t\t%.2f\n", students[i].id, students[i].name, students[i].sex, students[i].birth, students[i].score);
}
}
// 定义函数max_score,用于求成绩最高学生的序号
int max_score(struct Student *students, int size) {
int max_index = 0;
for(int i = 1; i < size; i++) {
if(students[i].score > students[max_index].score) {
max_index = i;
}
}
return max_index;
}
int main() {
struct Student students[SIZE];
input(students, SIZE);
output(students, SIZE);
int max_index = max_score(students, SIZE);
printf("成绩最高的学生是:%s\n", students[max_index].name);
printf("序号:%d\n", max_index);
return 0;
}
```
以上就是这个问题的代码实现,希望能够帮到你!
阅读全文