2015-04-13 2 views
-1

Im пытается суммировать элементы 3d-массива в C. Код распознает, что проверка положения [1] [1] [0] = 4 и добавляет 4 к сумме, когда цикл достигает эта позиция. Однако для остальной части массива он снова добавляет это значение, а затем снова добавляет общую сумму для остальных позиций массива. Может ли кто-нибудь понять, почему?Суммирование элементов 3d-массива в C

#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] [1] [0] = 4' ... * "Вы имели в виду' check [1] [1] [0] = 12'? –

ответ

1
sum+=sum+check[i][j][k]; 

должен быть

sum+=check[k][j][i]; 

И если вы хотите, чтобы суммировать все значения int size = 2; должны быть int size = 3;

+1

Спасибо, извините за непонятный вопрос. Была неосторожная ошибка. – Charlie

Смежные вопросы