首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C 語言數組入門:輸入、排序、輸出完整流程講解

     編輯:程式設計綜合問答

學習目標

掌握數組聲明、輸入、冒泡排序、輸出的完整流程,為後續學習指針、動態內存打基礎。

核心代碼模板

#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 為例)

初始: 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  (完成)

新手必知的 5 個關鍵點

  1. 下標從 0 開始:a[0] ~ a[N-1]。
  2. scanf 需取地址:&a[i],否則無法寫入內存。
  3. 交換需臨時變量:temp = a; a = b; b = temp;,不可直接 a = b; b = a;。
  4. 循環邊界:外層 N-1,內層 N-1-i。
  5. 善用宏定義:#define N 10,修改一處全局生效。

練習建議

  • 嘗試將冒泡排序改為選擇排序或插入排序。
  • 嘗試輸入不定數量整數(以負數結束),動態分配數組。
  • 嘗試對字符串數組排序(strcmp + strcpy)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved