C 語言程式:按升序排序陣列


問題

根據編寫的程式碼,將給定的陣列按降序或升序排序。

解決方案

陣列是一組相關的專案,它們共享一個共同的名稱。陣列中的特定值可以透過其“索引號”來識別。

宣告陣列

宣告陣列的語法如下:

datatype array_name [size];

例如:

float marks [50]

它宣告 'marks' 為一個包含 50 個浮點型元素的陣列。

int number[10]

它宣告 'number' 為一個數組,最多可以包含 10 個整型常量。

每個元素都透過使用“陣列索引”來識別。

透過使用陣列索引可以輕鬆地訪問陣列元素。

我們用於按升序排序陣列元素的邏輯如下:

for (i = 0; i < n; ++i){
   for (j = i + 1; j < n; ++j){
      if (num[i] > num[j]){
         a = num[i];
         num[i] = num[j];
         num[j] = a;
      }
   }
}

程式

以下是 C 語言程式,用於按升序排序陣列:

 線上演示

#include <stdio.h>
void main (){
   int num[20];
   int i, j, a, n;
   printf("enter number of elements in an array
"
);    scanf("%d", &n);    printf("Enter the elements
"
);    for (i = 0; i < n; ++i)       scanf("%d", &num[i]);    for (i = 0; i < n; ++i){       for (j = i + 1; j < n; ++j){          if (num[i] > num[j]){             a = num[i];             num[i] = num[j];             num[j] = a;          }       }    }    printf("The numbers in ascending order is:
"
);    for (i = 0; i < n; ++i){       printf("%d
"
, num[i]);    } }

輸出

執行上述程式時,會產生以下結果:

enter number of elements in an array
5
Enter the elements
12
23
89
11
22
The numbers in ascending order is:
11
12
22
23
89

更新於: 2023年9月2日

101K+ 閱讀量

開啟你的職業生涯

透過完成課程獲得認證

立即開始
廣告