HDU2020 绝对值排序
2015-01-29 22:51
204 查看
#include <stdio.h> #define abs(x) (x>0?x:-x) void swap(int *a, int *b) { int t; t = *a; *a = *b; *b = t; } int main(int argc, char **argv) { int n; int num[105]; int num_abs[105]; int i, j; while (scanf("%d", &n) == 1 && n != 0) { for (i = 0; i < n; ++ i) { scanf("%d", &num[i]); num_abs[i] = abs(num[i]); } for (i = 0; i < n - 1; ++ i) { for (j = i + 1; j < n; ++ j) { if (num_abs[i] < num_abs[j]) { swap(num_abs + i, num_abs + j); swap(num + i, num + j); } } } for (i = 0; i < n - 1; ++ i) printf("%d ", num[i]); printf("%d\n", num[n - 1]); } return 0; }