1、1/3 在c中取整为0
2、sum每次要清零,每个学生的成绩都从0开始累加总和
3、printf("%10.2f\n",aver[k]);这句改成printf("%10.2f\n",max);
把下面的程序跟自己原来的对照就行了,还有一些小问题,现在你才开始,以后慢慢注意就行了,我就不罗嗦那些小小的问题了。
#include
#define N 4
void main()
{
struct student
{
int num;
char name[20];
float score[3];
};
struct student stu[N];
int i,j,k=0,t;
float aver[N],sum=0,max=0;
for (i=0;i
printf("请输入第%d个学生的信息\n",i+1);
printf("学号:");
scanf("%d",&stu[i].num);
//getchar();
printf("姓名:");
scanf("%s",&stu[i].name);
//getchar();
printf("数学、物理、计算机成绩:");
for(j=0;j<3;j++)
{
scanf("%f",&stu[i].score[j]);
sum=sum+stu[i].score[j];
}
aver[i]=sum/3;
sum = 0;
}
printf("各位同学的信息为\n");
printf("学号 姓名 数学 物理 计算机 平均成绩¨\n");
for (i=0;i
printf("%4d %10s ",stu[i].num,stu[i].name);
for(j=0;j<3;j++)
printf("%10.2f ",stu[i].score[j]);
printf("%10.2f\n",aver[i]);
}
printf("平均分最高成绩\n");
for (t=0;t
if (max
max=aver[t];
k = t;
}
}
printf("学号 姓名 数学 物理 计算机 平均成绩\n");
printf("%4d %10s ",stu[k].num,stu[k].name);
for(j=0;j<3;j++)
printf("%10.2f ",stu[k].score[j]);
printf("%10.2f\n",max);
}
#include
#define N 3
void main()
{
struct student
{
int num;
char name[20];
float score[3];
};
struct student stu[N];
int i,j,k;
float aver[N],sum=0,max[N];
for (i=0;i
printf("请输入%d个学生的信息\n",i+1);
printf("学号:");
scanf("%d",&stu[i].num);
getchar();
printf("姓名");
scanf("%s",&stu[i].name);
getchar();
printf("数学、物理、计算机成绩:");
for(j=0;j<3;j++)
{
scanf("%f",&stu[i].score[j]);
sum=sum+stu[i].score[j];
}
aver[i]=sum/3;
sum=0;
}
printf("各位同学的信息为\n");
printf("学号 姓名 数学 物理 计算机 平均成绩\n");
for (i=0;i
printf("%4d %10s ",stu[i].num,stu[i].name);
for(j=0;j<3;j++)
printf("%10.2f ",stu[i].score[j]);
printf("%10.2f\n",aver[i]);
}
printf("平均分最高成绩\n");
for (k=0,i=0;k
max[k]=aver[i];
i++;
if (max[k]
}
printf("学号 姓名 数学 物理 计算机 平均成绩\n");
printf("%4d %10s ",stu[k-1].num,stu[k-1].name);
for(j=0;j<3;j++)
printf("%10.2f ",stu[k-1].score[j]);
printf("%10.2f\n",aver[k-1]);
}
没输出啊,在最后输出max[k]即可得到最高平均分。
好晚了 MARK一下 明天看