簡體   English   中英

我的 for 循環用於確定 2D 數組中的中間最大值有什么問題? C++ 未為變量分配新值

[英]What is wrong with my for loop for determining mid-max in a 2D array? C++ Not assigning new value to the variable

for (i = 0, i < NUM_ROWS; i++;){
    for (j = 0, j < NUM_COLS; j++;){ 
        if (milesTracker[i][j] > maxMiles)
            maxMiles = milesTracker[i][j];
            
        if (milesTracker[i][j] < minMiles)
            minMiles = milesTracker[i][j];
    }
}

maxMiles 和 midMiles 在嵌套循環之前都給定/初始化為 0。 當我運行它時(cout << minMiles),無論輸入如何,它都只返回一個零。

我的邏輯在哪里有缺陷? 它應該是 go:

  1. Go 通過數組中的每個數
  2. 第一次,它是否大於零,如果是,則將其設為新數字。
  3. 循環,重復,直到結束。

目前必須在 CompSci 2 中為 CompSci 1 支付我的罪過,所以我只是想回顧一下我從未學到的東西......

您的 for 循環聲明有錯誤。 一個for循環需要

for (index; range; increment)

以及用分號分隔的那些段。 現在您在索引子句中有一個逗號運算符,這意味着索引和范圍檢查i = 0, i < NUM_ROWSj = 0, j < NUM_COLS出現在第一段中,因此<檢查實際上被忽略了( 逗號運算符如何工作? )。 所以i++j++現在是在范圍檢查中,並且這些總是會導致0因為ij分別從0開始。

您應該將 for 循環更改為如下所示:

for (i = 0; i < NUM_ROWS; i++){
    for (j = 0; j < NUM_COLS; j++){ 
        //...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM