输入一整数,再输入n个整数,按绝对值从小到大排序重新存放后,再输出

来源:百度知道 编辑:UC知道 时间:2024/05/13 07:58:10
输入一整数n(1≤n≤10),再输入n个整数(有正有负)存入一维数组中,按绝对值从小到大排序重新存放后,再输出。

用到绝对值函数abs()和冒泡排序法,代码如下
#include <stdio.h>
#include <math.h>

void main(){
int n,*a,i;
scanf("%d",&n);
a=new int[n];
for(i=0;i<n;i++)
scanf("%d",&a[i]);
int temp,j;
for(i=0;i<n;i++)
for(j=0;j<n-i-1;j++)
{
if(abs(a[j])>abs(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]);
}