当前位置: 代码迷 >> 综合 >> HDU 2020
  详细解决方案

HDU 2020

热度:44   发布时间:2023-12-15 11:54:30.0
这个题的思路在于根据每个数的绝对值去做排序,而实际交换的是原来的数。
#include<stdio.h>
#include <malloc.h>
void sort(int *a,int len){for(int i=0;i<len;i++){for(int j=i;j<len;j++){if(abs(a[i]) > abs(a[j])){a[i] = a[i]+a[j];a[j] = a[i] - a[j];a[i] = a[i] - a[j];}}}
}int main(){int n;while(scanf("%d",&n)!= EOF && n != 0){int *p = malloc(sizeof(int)*n);for(int i=0;i<n;i++){scanf("%d",p+i);}sort(p,n);for(int i=n-1;i>=0;i--){printf("%d",*(p+i));if(i == 0){printf("\n");}else{printf(" ");}}free(p);}}