
c语言实验报告一道编程题,请教了啊……
输入一个班10个学生的学号和每个学生考试三门功课(数学、英语、计算机基础)的成绩。编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,最后打印一张按高分到低分名次排序...
输入一个班10个学生的学号和每个学生考试三门功课(数学、英语、计算机基础)的成绩。编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,最后打印一张按高分到低分名次排序的成绩单。要求:
1)排序用一个函数实现。
2)打印的成绩单表项包括:序号,学号、数学、英语、计算机、总分、平均分。 展开
1)排序用一个函数实现。
2)打印的成绩单表项包括:序号,学号、数学、英语、计算机、总分、平均分。 展开
展开全部
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);
};
}
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);
};
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询