C語言網——絕對值排序
阿新 • • 發佈:2018-12-26
問題 1169: 【絕對值排序】
時間限制: 1Sec 記憶體限制: 128MB 提交: 641 解決: 221
題目描述輸入n(n<=100)個整數,按照絕對值從大到小排序後輸出。題目保證對於每一個測試例項,所有的數的絕對值都不相等。
輸入輸入資料有多組,每組佔一行,每行的第一個數字為n,接著是n個整數,n=0表示輸入資料的結束,不做處理。
輸出對於每個測試例項,輸出排序後的結果,兩個數之間用一個空格隔開。每個測試例項佔一行
樣例輸入3 3 -4 2 4 0 1 2 -3 0樣例輸出
-4 3 2 -3 2 1 0
還是水題,,這資料有問題,題目說0不處理,所以所以相當然是以為0是資料結尾,結果輸出超限,還要加上一個到達檔案結尾的判斷條件
AC程式碼:
#include<stdio.h> #include<math.h> int main() { int n; int i; int j; int t; int a[202]; while(scanf("%d",&n)!=EOF){ if(n==0){ break; } for(i=0;i<n;i++){ scanf("%d",&a[i]); } for(i=0;i<n-1;i++){ for(j=i+1;j<n;j++){ if(fabs(a[i])<fabs(a[j])){ t=a[i]; a[i]=a[j]; a[j]=t; } } } for(i=0;i<n-1;i++){ printf("%d ",a[i]); } printf("%d\n",a[i]); } return 0; }