#include <
stdio.h>
int abs_val(int x);
int main(void)
{
int a[10], n, temp, i, j;
scanf("%d", &n);
for (i = 0; i < n; ++i)
scanf("%d", &a[i]);
/* 冒泡排序 */
for (i = n - 1; i >= 1; --i) {
for (j = 0; j < i; ++j) {
if (abs_val(a[j]) > abs_val(a[j + 1])) {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
else if (abs_val(a[j]) == abs_val(a[j + 1]) && a[j] > a[j + 1])
/* 确保
绝对值相同时,正数在负数之后 */
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
for (i = 0; i < n; ++i)
printf("%d ", a[i]);
printf("\n");
return 0;
}
int abs_val(int x)
{
return x > 0 ? x : -x;
}
这个程序是键盘输入,屏幕输出。
如果你有进一步的问题,愿意的话,可以把QQ告诉我,我加你QQ