本帖最后由 jackz007 于 2023-11-25 22:06 编辑
楼主没有说明题目要求,不知道楼主想要的是什么效果,根据猜测,本人改写了一个版本,希望能帮到楼主。#include <stdio.h>
#define M 4
int main()
{
float a[4] , m[4] ;
/*********begin**********/
int b[4] , q[4] , c = 0 , d = 0 , k , t ;
for(c = 0 ; c < M ; c ++) {
scanf("%d%f" , & b[c] , & a[c]) ;
q[c] = c ;
}
for(c = 1 ; c < M ; c ++) {
for(k = M - c , d = 0 ; d < M - c ; d ++) {
if(a[q[k]] < a[q[d]]) {
t = q[k] ;
q[k] = q[d] ;
q[d] = t ;
}
}
}
for(c = 0 ; c < M ; c ++) printf("%d : %d , %f\n" , c + 1 , b[q[c]] , a[q[c]]) ;
/*********end**********/
return 0;
}
编译、运行实况:D:\[exercise]\C>g++ -o x x.c
D:\[exercise]\C>x
1 9.9
3 99.9
2 1.9
4 3.9
1 : 2 , 1.900000
2 : 4 , 3.900000
3 : 1 , 9.900000
4 : 3 , 99.900002
|