簡體   English   中英

我正在學習如何將矩陣內的值相加。但是我嘗試了兩種方法,為什么第二種方法不起作用?

[英]I'm learning how to add the values ​inside a matrix together.But I try two ways, why the second one doesn't work?

[我試過兩種方法,一種是第14行,另一種是第15行。為什么第14行通過編譯器而第15行沒有?]

我分兩個單獨的步驟完成,第一個單獨使用 14 行方法,第二個使用 15 行方法。

#include<stdio.h>

int main() {
    int matrix[][4] = 
        {{14, 10, 6, 4}, {3, 7, 18, 11}, {13, 9, 5, 17}, {19, 12, 2, 1}}; 
  

  // Checkpoint 1 code goes here.

    int rowDimension=sizeof(matrix)/sizeof(matrix[0]);
    int columDimension=sizeof(matrix[0])/sizeof(int);
  // Checkpoint 2 code goes here.
    
    for(int i=0;i<rowDimension;i++){
      for(int j=0;j<columDimension;j++){
        int sum = sum+matrix[i][j]; //line 14
        int sum +=matrix[i][j]; //line 15
        printf("%d\n",sum);
    }
  }
    
}

這是一個聲明:

 int x = matrix[i][j];

這是一個表達式語句:

 x += matrix[i][j];

這是無效的 C 代碼:

 int sum += matrix[i][j];

它不是聲明,因為聲明不能在被聲明的事物之后有+= 它不是表達式語句,因為表達式語句不能以類型開頭。

這編譯

 int sum = sum+matrix[i][j];

但前提是您忽略編譯器警告 不。 更多信息

將數組中的值相加的方法是這樣的:

  1. 在循環之前聲明總和並將其初始化為零

     int sum = 0;
  2. 將值添加到循環的總和:

     for (... whatever...) { sum +=... whatever...; }

暫無
暫無

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

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