掌握數組聲明、輸入、冒泡排序、輸出的完整流程,為後續學習指針、動態內存打基礎。
#include
#define N 10 // 使用宏定義數組大小,易於修改
int main() {
int a[N];
int i, j, temp;
// 1. 輸入
printf("請輸入 %d 個整數:\n", N);
for (i = 0; i < N; i++) {
scanf("%d", &a[i]);
}
// 2. 排序(冒泡法)
for (i = 0; i < N - 1; i++) { // 趟數
for (j = 0; j < N - 1 - i; j++) { // 每趟比較次數
if (a[j] > a[j + 1]) {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
// 3. 輸出
printf("排序結果:");
for (i = 0; i < N; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
初始: 5 3 8 1 第1趟: 比較 5>3 交換 → 3 5 8 1 比較 5>8 不換 → 3 5 8 1 比較 8>1 交換 → 3 5 1 8 (最大值 8 沉底) 第2趟: 比較 3>5 不換 → 3 5 1 8 比較 5>1 交換 → 3 1 5 8 (次大值 5 就位) 第3趟: 比較 3>1 交換 → 1 3 5 8 (完成)
a[0] ~ a[N-1]。scanf 需取地址:&a[i],否則無法寫入內存。temp = a; a = b; b = temp;,不可直接 a = b; b = a;。N-1,內層 N-1-i。#define N 10,修改一處全局生效。strcmp + strcpy)。