정렬 HDU의 절대 값 - 2020

 输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。 

입력
데이터를 입력 다중 세트는 각각 하나 개의 행을 나타내는 각 행의 첫 번째 숫자, N 그리고, n은 정수이고, n = 0 처리없이 입력 데이터의 끝을 나타낸다.
출력
테스트 케이스에 대한 결과는 두 숫자 사이의 출력 순서, 공간으로 분리된다. 줄에 각각의 테스트 케이스.
샘플 입력

3 3 -4 2
4 0 1 2 -3
0

샘플 출력

-4 3 2
-3 2 1 0

해결 방법 :
순서의 문제는 일종의 거품 법이거나 다음 예제를 정렬 버블 정렬을 선택할 수 있습니다. 우리는 코드 그것에 그 절대 값의 종류, 모양을 기억해야하므로 동시에 내림차순의 절대 값에 따라 요청의 주제!

다음과 같이 코드입니다 :

#include<stdio.h>
#include<math.h>
int main()
{
    int n,m;
    while(~scanf("%d",&n)&&n)    //多组输入且输入0时结束
    {
        int a[n];
        int i,j,t;
        for(i=0; i<n; i++)
            scanf("%d",&a[i]);
            
        for(j=0; j<n-1; j++)              //冒泡排序核心代码
            for(i=0; i<n-1-j; i++)
                if(fabs(a[i])<fabs(a[i+1]))
                {
                    t=a[i];
                    a[i]=a[i+1];
                    a[i+1]=t;
                }
                
        for(i=0;i<n-1;i++)    //输出控制格式
        printf("%d ",a[i]);
        for(i=n-1;i<n;i++)
            printf("%d",a[i]);
        printf("\n");
    }
    return 0;
}

 

출시 일곱 개 원래 기사 · 원 찬양 한 · 전망 (61)

추천

출처blog.csdn.net/Piink/article/details/105089181