各位大佬帮忙看下 输出结果是正确的 但在oj判断答案错误50%
#include<stdio.h>#include<stdlib.h>
typedef struct student ss;
struct student
{
char id[20];
char name[25];
int score[3];
};
void Input(int n,ss* p);
void GetAve(int n,ss* p);
void GetMax(int n,ss* p);
int main()
{
int N;
scanf("%d",&N);
ss* p=(ss*)malloc(sizeof(ss)*N);
Input(N,p);
// Output(N,p);
GetAve(N,p);
GetMax(N,p);
free(p);
return 0;
}
void Input(int n,ss* p)
{
for(int i=0;i<n;i++)
{
scanf("%s%s%d%d%d\n",p[i].id,p[i].name,&p[i].score[0],&p[i].score[1],&p[i].score[2]);
}
return;
}
void GetAve(int n,ss* p)
{
int sum=0;
float ave=0.0;
for(int i=0;i<3;i++)
{
for(int j=0;j<n;j++)
{
sum+=p[j].score[i];
}
ave=sum/n;
sum=0;
printf("%.0f ",ave);
}
printf("\n");
return;
}
void GetMax(int n,ss* p)
{
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-1-i;j++)
{
if((p[i].score[0]+p[i].score[1]+p[i].score[2])<(p[i+1].score[0]+p[i+1].score[1]+p[i+1].score[2]))
{
// ss* t=(ss*)malloc(sizeof(ss));
struct student t=p[i];
p[i]=p[i+1];
p[i+1]=t;
}
}
}
printf("%s %s %d %d %d \n",p[0].id,p[0].name,p[0].score[0],p[0].score[1],p[0].score[2]);
}