#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#define N 10struct student {int num;char name[1024];int score[3];};typedefstruct student stu;voidinput(stu* p){//输入for(int i =0; i < N;++i){printf("请输入第%d个学生的信息\n", i +1);printf("请输入num\n");scanf("%d",&(p + i)->num);printf("请输入姓名\n");scanf("%s",&(p + i)->name);for(int j =0; j <3;++j){printf("请输入score%d\n", j +1);scanf("%d",&(p + i)->score[j]);}}}voidprint(stu* p){//输出printf("%d\t", p->num);printf("%s\t", p->name);for(int j =0; j <3;++j){printf("%d\t", p->score[j]);}}doubleaver(stu* p){//计算平均分double sum =0;for(int i =0; i <3;++i){
sum += p->score[i];}return sum / N;}intexcellect(stu* p){//判断最高分,返回下标double sum =0;double max =0;int record =0;for(int i =0; i < N;++i){
sum =0;for(int j =0; j <3;++j){
sum +=(p + i)->score[j];}if(max < sum){
max = sum;
record = i;}}return record;}voidmain(){
stu a[N];
stu* p = a;input(p);printf("学号\t姓名\t成绩1\t成绩2\t成绩3\t平均\n");for(int i =0; i < N; i++){print(p + i);printf("%f\n",aver(p + i));}printf("最高分的学生数据如下\n学号\t姓名\t成绩1\t成绩2\t成绩3\t平均\n");int n =excellect(p);print(p + n);printf("%f\n",aver(p + n));system("pause");}