我试图在C中对3d数组的元素求和。代码识别位置检查[1] [1] [0] = 4并在循环到达此位置时将4加到sum。但是对于数组的其余部分,它会继续再次添加此值,然后再次为数组的其余位置添加总和。谁能明白为什么?
#include <stdio.h>
main() {
int check[3][3][3]={ 0 };
int size=2;
int i,j,k,sum=0;
check[1][1][0]=12;
for(k=0;k<size;k++) {
for(j=0;j<size;j++) {
for(i=0;i<size;i++) {
printf("i=%d, j=%d,k=%d, checkijk=%d ",i,j,k,check[i][j][k]);
sum+=sum+check[i][j][k];
printf("sum=%d\n", sum);
}
}
}
printf("The sum is %d\n",sum);
}
答案 0 :(得分:1)
sum+=sum+check[i][j][k];
应该是
sum+=check[k][j][i];
如果您想要汇总所有值int size = 2;
必须为int size = 3;