int i, a, num = 5;
int array[5];
while (num--) {
scanf("%d", &a);
array[i] = a; // i 未初始化、未遞增!每次寫入同一位置(未定義行為)
}
int array[5];
for (int i = 0; i < 5; i++) { // 明確初始化、條件、遞增
scanf("%d", &array[i]);
}
// 冒泡排序
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4 - i; j++) {
if (array[j] > array[j+1]) {
int tmp = array[j];
array[j] = array[j+1];
array[j+1] = tmp;
}
}
}
// 輸出
for (int i = 0; i < 5; i++) printf("%d ", array[i]);
int i = 0。i < 5。i++(或在迴圈體末尾 i++)。array[i],避免中間變數 a。#include <stdio.h>
#define N 5
int main() {
int a[N];
for (int i = 0; i < N; i++) scanf("%d", &a[i]);
for (int i = 0; i < N-1; i++)
for (int j = 0; j < N-1-i; j++)
if (a[j] > a[j+1]) { int t=a[j]; a[j]=a[j+1]; a[j+1]=t; }
for (int i = 0; i < N; i++) printf("%d ", a[i]);
return 0;
}
編譯執行後,輸入 5 個數字即可得到排序結果。