算法有错 同是新手的来改改 嘿嘿
#include "stdio.h"struct st
{
int number;
char name[20];
float scroe[3];
};
struct st s[10];
float ave(struct st s[10],int n)
{
float sum=0,a;
int i,j;
for(i=0;i<10;i++)
{
for(j=0;j<3;j++)
{
sum+=s[i].scroe[j];
}
}
a=sum/n;
return a;
}
void hig(struct st s[10])
{
float sum,max,a;
int i,j,k=0;
max=0;
for(i=0;i<10;i++)
{
for(j=0;j<3;j++)
{
sum=0;
sum+=s[i].scroe[j];
}
if(k==0)
{
max=sum;
}
else if(sum>max)
{
max=sum;
k=i;
}
}
a=max/3;
printf("最高分数的同学:\n学号\t 姓名\t 分数1\t 分数2\t 分数3\t \n");
printf("%d\t%s\t%f\t%f\t%f\n",s[k].number,s[k].name,s[k].scroe[0],s[k].scroe[1],s[k].scroe[2]);
printf("他的平均分:%f\n",a);
}
main()
{
int i,j;
printf("请输入数据:\n学号 姓名 分数1 分数2 分数3 \n");
for(i=0;i<10;i++)
{
scanf("%d",&s[i].number);
printf("\t");
scanf("%s",s[i].name);
printf("\t");
for(j=0;j<3;j++)
{
scanf("%f",&s[i].scroe[j]);
printf("\t ");
}
printf("\n");
}
printf("3门课总平均成绩:\n");
printf("%f\n",ave(s,30));
hig(s);
}
不要把改好的贴出来
----------------解决方案--------------------------------------------------------