c语言实验报告一道编程题,请教了啊……

输入一个班10个学生的学号和每个学生考试三门功课(数学、英语、计算机基础)的成绩。编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,最后打印一张按高分到低分名次排序... 输入一个班10个学生的学号和每个学生考试三门功课(数学、英语、计算机基础)的成绩。编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,最后打印一张按高分到低分名次排序的成绩单。要求:
1)排序用一个函数实现。
2)打印的成绩单表项包括:序号,学号、数学、英语、计算机、总分、平均分。
展开
 我来答
L_o_o_n_i_e
2008-06-06 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:6022万
展开全部
void sort(float *all, int n, int *order){
int i,j,k;
float f;
for (i=0;i<n;i++) order[i] = i;
for (i=0;i<n-1;i++)
for (j=i+1;j<n;j++){
if (all[j] > all[i]) {
f=all[j]; all[j]=all[i]; all[i]=f;
k = order[j];order[j]=order[i];order[i]=k;
};
};
}

void main ()
{
int id[10];
float m1[10],m2[10],m3[10],all[10];
int order[10];
int i,k,n=10;

printf("please input id math Eng comp scores\n");
for (i=0;i<n;i++) {
scanf("%d %f %f %f",&id[i],&m1[i],&m2[i],&m3[i]);
all[i] = m1[i]+ m2[i] + m3[i];
};
sort( &all[0], n, &order[0]);
for (i=0;i<n;i++){
k = order[i];
printf("%d %d %f %f %f %f %f\n",i+1,id[k],m1[k],m2[k],m3[k],all[i],all[i]/3.0);
};
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式