急!分别编写3个函数实现以下要求
用结构体比较容易,代码如下:
#include
struct stu
{ int num; /*学生的序号*/
float sco1;
float sco2;
float sco3;
float ave;
};
void ave1(void); /*求每个学生的平均分*/
void ave2(void); /*求每门课的平均分*/
void print(void); /*对每个学生的平均分数进行排序,按升序输出*/
struct stu a[5],*p[5],*temp;
float sco[3]={0。 0}; /*每门课的平均分*/
void m...全部
用结构体比较容易,代码如下:
#include
struct stu
{ int num; /*学生的序号*/
float sco1;
float sco2;
float sco3;
float ave;
};
void ave1(void); /*求每个学生的平均分*/
void ave2(void); /*求每门课的平均分*/
void print(void); /*对每个学生的平均分数进行排序,按升序输出*/
struct stu a[5],*p[5],*temp;
float sco[3]={0。
0}; /*每门课的平均分*/
void main(void)
{ int i,j;
for(i=0;inum=i;
printf("Please enter %d student sco1,sco2,sco3=",i);
scanf("%f,%f,%f",&p[i]->sco1,&p[i]->sco2,&p[i]->sco3);
}
ave1();
ave2();
print();
getch();
}
void ave1()
{ int i;
for(i=0;iave=0。
0;
p[i]->ave=(p[i]->sco1+p[i]->sco2+p[i]->sco3)/3。
0;
}
}
void ave2()
{ int i;
for(i=0;isco1;
for(i=0;isco2;
for(i=0;isco3;
for(i=0;iave)>(p[j]->ave))
{ temp=p[i];
p[i]=p[j];
p[j]=temp;
}
for(i=0;inum,
p[i]->sco1,p[i]->sco2,p[i]->sco3,p[i]->ave);
}
。收起