hdu_2020_絕對值排序

應該有更簡單的算法.....a了算了..

http://acm.hdu.edu.cn/showproblem.php?pid=2020

絕對值排序

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 16672    Accepted Submission(s): 8243


Problem Description
輸入n(n<=100)個整數,按照絕對值從大到小排序後輸出。題目保證對於每一個測試實例,所有的數的絕對值都不相等。
 

Input
輸入數據有多組,每組佔一行,每行的第一個數字爲n,接着是n個整數,n=0表示輸入數據的結束,不做處理。 
 

Output
對於每個測試實例,輸出排序後的結果,兩個數之間用一個空格隔開。每個測試實例佔一行。
 

Sample Input
3 3 -4 2 4 0 1 2 -3 0
 

Sample Output
-4 3 2 -3 2 1 0
 
        1. #include<iostream>
        2. using namespace std;
        3. int main()
        4. {
        5. int n,i,j,temp;
        6. int num[101];
        7. while(cin>>n&&n)
        8. {
        9. for(i=0;i<n;i++)
        10. cin>>num[i];
        11. for(i=0;i<n;i++)
        12. {
        13. for(j=i;j<n;j++)
        14. if(abs(num[i])<abs(num[j]))
        15. {temp=num[i];num[i]=num[j];num[j]=temp;}
        16. }
        17. for(i=0;i<n;i++)
        18. {
        19. cout<<num[i];
        20. if(i!=n-1)
        21. cout<<" ";
        22. else
        23. cout<<"\n";
        24. }
        25. }
        26. return 0;
        27. }
        28. int abs(int x)
        29. {
        30. if(x>=0)
        31. return x;
        32. else
        33. return -x;
        34. }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章