c语言题!!急!!输入一个班的5个学生的学号与成绩,请按成绩从高到低输出,学号与对应成绩同时输出。

只需要学号与一个成绩。其他不需要 ,

这里采用的是选择排序,能够实现基本的功能,如果人数较多的话,还是要采用结构体和效率更高的排序算法。

#include<stdio.h>


int main()

{

int num[5] = {0}; // 学号

double score[5] = {0}; // 成绩

int i, j, k;

int temp;

double temp1;

for(i = 0; i < 5; i++)

{

printf("学号,成绩(用空格分开):");

scanf("%d %lf", &num[i], &score[i]);

for(i = 0; i < 4; i++)

{

k = i;

for(j = i+1; j < 5; j++)

{

if(score[j] > score[k])

{

k = j;

}

}

if(k != i)

{

temp = num[k];num[k] = num[i];num[i] = temp;

temp1 = score[k];score[k] = score[i];score[i] = temp1;  

}

}

printf("\t学号\t成绩\n");

for(i = 0; i < 5; i++)

{

printf("\t%4d\t%4.1lf\n", num[i], score[i]);

}

return 0;

}

温馨提示:答案为网友推荐,仅供参考
相似回答