看别人后写的,有什么不对,请指教。
#include <stdio.h>
#include <malloc.h>
typedef struct ALL
{
int id[30];
int name[30];
int score[3];
int sum;
} stu;
void write(stu *x)
{
scanf("%s %s %d %d %d",x->id,x->name,&x->score[0],&x->score[1],&x->score[2]);
}
int main()
{
int n,i,max=0,sum1=0,sum2=0,sum3=0;
stu *list;
scanf("%d",&n);
list=(stu *)malloc(sizeof(stu)*n);
for(i=0;i<n;i++)
{
write(&list[i]);
list[i].sum=list[i].score[0]+list[i].score[1]+list[i].score[2];
sum1+=list[i].score[0];
sum2+=list[i].score[1];
sum3+=list[i].score[2];
if(max<list[i].sum)
max=list[i].sum;
}
printf("%d %d %d\n",sum1/n,sum2/n,sum3/n);
for(i=0;i<n;i++)
{
if(max==list[i].sum)
printf("%s %s %d %d %d",list[i].id,list[i].name,list[i].score[0],list[i].score[1],list[i].score[2]);
}
free(list);
return 0;
}