输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。
Input
输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整数,n=0表示输入数据的结束,不做处理。
Output
对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开。每个测试实例占一行。
Sample Input
3 3 -4 2 4 0 1 2 -3 0
Sample Output
-4 3 2 -3 2 1 0
用上绝对值函数方便很多
1 #include<stdio.h> 2 #include<math.h> 3 4 int main() 5 { 6 int n,i,j,t; 7 int a[100] = { 0 }; 8 while ((scanf_s("%d", &n) != EOF) && (n != 0)) 9 { 10 for (i = 0; i < n; i++) 11 scanf_s("%d", &a[i]); 12 for (i = 0; i < n-1; i++) 13 for (j = 0; j < n - 1 - i; j++) 14 if (abs(a[j+1]) > abs(a[j])) { t = a[j+1]; a[j+1] = a[j]; a[j] = t; } 15 for (i = 0; i < n - 1; i++) 16 printf("%d ", a[i]); 17 printf("%d\n", a[n - 1]); 18 19 } 20 21 getchar(); 22 return 0; 23 }