首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

C語言入門:尋找陣列中的最大值與最小值

     編輯:關於C

C語言基礎範例:計算陣列最大值與最小值

在C語言程式設計中,尋找陣列中的最大值與最小值是最基礎也最常見的演算法練習之一。這個範例展示了如何透過迴圈遍歷陣列,比較每個元素來找出極值。

完整程式碼

#include <stdio.h>

int main() {
    int i = 0;
    int max = 0, min = 0;
    int arr[10];
    
    printf("請輸入10個整數: ");
    for(i = 0; i < 10; i++) {
        scanf("%d", &arr[i]);
    }
    
    // 初始化最大值和最小值為第一個元素
    max = arr[0];
    min = arr[0];
    
    // 遍歷陣列尋找極值
    for(i = 0; i < 10; i++) {
        if(max < arr[i]) max = arr[i];
        if(min > arr[i]) min = arr[i];
    }
    
    printf("max=%d, min=%d\n", max, min);
    return 0;
}

程式邏輯解析

1. 陣列宣告與輸入
程式首先宣告一個包含10個整數的陣列 arr[10],然後使用 for 迴圈配合 scanf 讓使用者輸入10個整數。

2. 極值初始化
關鍵步驟是將 max 和 min 都初始化為陣列的第一個元素 arr[0]。這比初始化為 0 更合理,因為輸入的數字可能全是負數或全是正數。

3. 單次遍歷尋找極值
只需要一個迴圈就能同時找到最大值和最小值:每次迴圈檢查當前元素是否大於目前的最大值,或小於目前的最小值,若是則更新對應變數。時間複雜度為 O(n)。

常見錯誤與改進建議

  • 避免初始化為 0:若輸入全為負數,max 會錯誤地保持為 0
  • 輸入驗證:實際專案中應檢查 scanf 的回傳值,確保輸入格式正確
  • 陣列大小靈活化:可使用巨集定義陣列大小,方便後續修改

進階延伸

若需同時記錄最大值和最小值的索引位置,可額外宣告 maxIndex 和 minIndex 變數,在更新極值時同步記錄索引。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved