Alex做完字符串游戏后,她的朋友们还是没有生完猴子,于是她开始玩数组排序游戏。她希望你可以帮助她用指针编写一个程序,可以对数组a的n个元素按绝对值从小到大进行排列。输入的元素不会有a、-a同时出现的情况。
输入包含多组测试数据。
对于每组测试数据,先输入一个正整数N(N<10000),接下去输入N个绝对值小于100的整数。
排序后的数组。
每组测试数据之间用一个空行隔开。
input: 54 6 -2 1 0 output: 0 1 -2 4 6
下附AC代码:
#include <stdio.h> #include<math.h> #define SIZE 10000 void sort(int *p, int n) { int *p1 = p; int i, j, t; for (i = 0; i < n; i++) { for (j = i + 1; j < n; j++) if (abs(*(p + i)) > abs(*(p + j))) { t = *(p + j); *(p + j) = *(p + i); *(p + i) = t; } } } int main() { int n, i, j, t; int a[SIZE]; while (scanf("%d", &n) != EOF) { for (i = 0; i < n; i++) { scanf("%d", &a[i]); } sort(a, n); for (i = 0; i < n; i++) { printf("%d", a[i]); if (i != n - 1) printf(" "); if (i == n - 1) printf("\n"); } printf("\n"); } return 0; }原题链接:http://acm.hznu.edu.cn/OJ/problem.php?cid=1092&pid=23