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

C 語言一維陣列最大/最小值索引追蹤邏輯解析

     編輯:程式設計疑難解答

程式碼片段語境

int a[10], max = 0, min = 0;
for (int i = 0; i < 10; i++) scanf("%d", &a[i]);
for (int i = 1; i < 10; i++) {
    if (a[i] > a[max]) max = i;
    if (a[i] < a[min]) min = i;
}

關鍵點解讀

  • a[i]:陣列第 i 個元素的值 (輸入的整數)。
  • max, min:儲存目前最大/最小值對應的下標 (索引),初始為 0。
  • i=0 時 a[0] > a[0] 為假,max 維持 0,**重複比較一次無副作用**,邏輯簡潔統一。
  • 迴圈從 i=1 開始即可避免自我比較,但從 0 開始碼風更對稱。

執行流程範例

輸入:5 2 9 1 7

ia[i]a[max]比較結果maxmin
055-00
1252<501
2959>521
3191<9, 1<223
4797<923

最終 max=2 (值 9), min=3 (值 1)。

延伸:若需輸出值而非下標

printf("Max: %d, Min: %d\n", a[max], a[min]);
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved