有5个学生,每个学生的数据包括学号、姓名、三门课的成绩,从键盘输入5个学生数据,并打印输出。要求用一个input函数输入5个学生数据;用一个print函数打印一个学生数据;并在主函数中调用input和print函数。在此基础上编写求max函数,求平均成绩最高分的学生的数据,编写函数average求总平均分,并在主函数中调用。
#include<stdio.h>
#include<string.h>
struct student{
char studid[12];
char name[12];
int sub1;
int sub2;
int sub3;
}data[5];
void main(){
void input(struct student data[5]);
void print(struct student data[5]);
void max(struct student data[5]);
void average(struct student data[5]);
input(data);
printf("学号 姓名 科目一 科目二 科目三\n");
print(data);
}
void input(struct student data[]){
int i;
printf("请输入相关的学生信息:\n");
for(i=0;i<5;i++){
scanf("%s",data[i].studid);
scanf("%s",data[i].name);
scanf("%d",&data[i].sub1);
scanf("%d",&data[i].sub2);
scanf("%d",&data[i].sub3);
}
}
void print(struct student data[]){
int i;
for(i=0;i<5;i++){
printf("%s %s %d %d %d",data[i].name,data[i].studid,data[i].sub1,data[i].sub2,data[i].sub3);
printf("\n");
}
}
void max(struct student data[]){
int i=0;
int a[5];
int max=0;
max=a[0];
for(i=0;i<5;i++){
a[i]=(data[i].sub1+data[i].sub2+data[i].sub3)/3;
if(strcmp(a[i],a[i+1])<0)
max=a[i+1];
printf("%d\n",max);
}
void average(struct student data[]){
int i=0;
int all=0;
int a[5];
int average=0;
for(i=0;i<5;i++){
a[i]=(data[i].sub1+data[i].sub2+data[i].sub3);
all+=a[i];
}
average=all/5;
printf("%d\n",average);
}
这是我自己写的,求大佬帮忙改正