跪求C语言试题答案

来源:百度知道 编辑:UC知道 时间:2024/05/25 16:17:01
某班有30位同学,每位同学有期中和期末成绩以及唯一的6位学号。请编写一个程序,按平均分由低到高的顺序输出每位同学的学号、总分、平均分数。其中,总分=期中成绩+期末成绩,平均分=总分/2。要求使用3个函数分别实现有关任务:
(1)viod init():输入原始数据:学号、期中成绩、期末成绩。并计算平均分、总分。
(2)viod init():排序。
(3)viod result():输出结果。

PS:各位大大,受累帮下小第。。。

#include<stdio.h>
#include<stdlib.h>
#define num 30
struct student
{
long name;
int grade1;
int grade2;
float ave;
int sum;
};
void init(struct student *stu)
{
int i;
for(i=0;i<num;i++)
{
stu[i].sum=0;
printf("请输入第%d位学生的学号、期中成绩、期末成绩:\n",i+1);
scanf("%ld%d%d",&stu[i].name,&stu[i].grade1,&stu[i].grade2);
}
for(i=0;i<num;i++)
{
stu[i].sum+=(stu[i].grade1+stu[i].grade2);
stu[i].ave=(float)stu[i].sum/2;
}
};
void sort(struct student *stu)
{
int i,j;
float temp;
for(i=0;i<num;i++)
for(j=i+1;j<num;j++)
if(stu[i].ave>stu[j].ave)
{
temp=stu[i].ave;
stu[i].ave=stu[j].ave;
stu[j].ave=temp;
}
};
void result(struct student *stu)
{
int i;
for(i=0;i<num;i++)
{
printf(&quo