原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2020
我还是习惯选择排序,绝对值很简单的,套用fabs就行
#include <stdio.h>
#include <math.h>
int main()
{
int i,n,t;int a[100];
while(~scanf("%d",&n)){
if(n==0) break;
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}//逐个输入
for(i=1;i<n;i++)//我用的是选择排序
for(int j=i+1;j<=n;j++)
if(fabs(a[i])<fabs(a[j]))//利用math里的fabs绝对值
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
for (i=1;i<=n;i++)
printf("%d%c",a[i],(i-n?' ':'\n'));//逐个输出,注意最后一个没有空格不然表示错误,
//三元表达式比较省事
}
return 0;
}