HDUACM2020

絕對值排序

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


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
 

Author
lcy
 

Source
 

Recommend
lcy   |   We have carefully selected several similar problems for you:  2025 2022 2023 2021 2024 

注意abs函數在頭文件 stdlib.h中 不是 math.h
#include<stdio.h>
#include<stdlib.h>

int main(){
	int n,list[100];
	while(scanf("%d",&n)!=EOF && n){
		memset(list,0,sizeof(list));
	
		for(int i = 0;i<n;i++){
			scanf("%d",&list[i]);
		
		}
		int temp;
		for(int i = 1;i<n;i++){
			for(int j = 0;j < n-i;j++){
				if(	abs(list[j+1])>= abs(list[j])){
				
					
					temp = list[j];
					list[j] = list[j+1];
					list[j+1] = temp;
				}
			}
		}
		
		for(int i = 0;i < n;i++ ){
			if(i == 0){
					printf("%d",list[i]);
			}else{
				printf(" %d",list[i]);
			}
		
		}
		printf("\n");
	}
	return 0;
}


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