[英]I'm learning C and I've made a simple program. It doesn't work and I need a an answer
[英]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];
將數組中的值相加的方法是這樣的:
在循環之前聲明總和並將其初始化為零。
int sum = 0;
將值添加到循環內的總和:
for (... whatever...) { sum +=... whatever...; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.