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
廣告