请大伙们帮忙看下,到底哪错了,我想了许久实在是找不出原因,新手请见谅,十分感谢!!
以下代码想表达的是,假如有N位学生,然后输入学生的学号,姓名,以及三名课程的成绩,再计算出三门课程的平均分,并且将平均分最高的这位同学的相当信息都输出至屏幕!#include<stdio.h>
#define N 5 \\定义一个宏来替代学生的位数,这里例如五位学生
struct student \\定义一个学生的结构体
{
char id[10]; \\学号
char name[10]; \\姓名
float score[3]; \\颗目
float ave; \\平均分
}stu[N];
void input() \\输入学生的信息
{
int i;
for(i=0;i<N;i++)
{
printf("请输入第%d名学生的成绩\n",i+1);
scanf("%s%s%lf%lf%lf",stu[i].id,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
stu[i].ave=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
}
}
void output() \\输出学生的信息
{
int i;
for(i=0;i<N;i++)
printf("%s\t%s\t%f\t%f\t%f\t%f\n",stu[i].id,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].ave);
}
void sortput() \\排序取出平均分最高的学生
{
int i,j;
float temp;
for(i=0;i<N;i++)
for(j=0;j<N-i-1;j++)
{
if(stu[j].ave<stu[j+1].ave)
{
temp=stu[j+1].ave;
stu[j+1].ave=stu[i].ave;
stu[j].ave=temp;
}
}
printf("\n%s\t%s\t%f\t%f\t%f\t%f\n",stu[i].id,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].ave);
}
void main() \\引用以上函数
{
input();
output();
sortput();
}