【问题描述】输入 10 个数,按绝对值从大到小排序后输出。(要求用指针做)
【输入形式】输入10个float实数
【输出形式】以小数点后两位有效数字输出从大到小数列!
【样例输入】11.3 -24.1 31.6 -41 57.6 -68.1 72.5 -89.7 96.8 -100.3
【样例输出】
-100.30,96.80,-89.70,72.50,-68.10,57.60,-41.00,31.60,-24.10,11.30
#include <stdlib.h>
#include<stdio.h>
#include<math.h>
void Sort(float *num)
{
int i = 0;
int j = 0;
for (i = 0; i < 9; i++)
{
for (j = 0; j < 9 - i; j++)
{
if (fabs(num[j]) < fabs(num[j + 1]))
{
float t = 0;
t = *(num + j);
*(num + j) = *(num + j+1);
*(num + j+1) = t;
}
}
}
}
int main()
{
float num[10];
int i = 0;
for (i = 0; i < 10; i++)
{
scanf("%f", &num[i]);
}
Sort(num);
for (i = 0; i < 9; i++)
{
printf("%.2f,", num[i]);
}
printf("%.2f",num[9]);
return 0;
}