数组打印值的总和

时间:2016-12-25 12:14:42

标签: c arrays multidimensional-array

我在计算C语言中多维数组中每行的值总和时遇到问题。

示例:

我的数组值:

   1  2  3  4     
   5  6  7  8                                         
   9 10 11 12    

我的结果数组应该是:

       10
       26      
       42

w - 数行 k - 计算列

int tab[w][k]; <-- this is a table just with values(it's example) 
int sum[] = {0};
int i,j;

for(i=0;i<w;i++)
{
   for(j=0;j<k;j++)
     {
       sum[i] = sum[i] + tab[i][j];
     }
}

效果不佳。我尝试过另一种方式,但它只计算了第一行。

请帮帮我,谢谢。

1 个答案:

答案 0 :(得分:1)

sum [] = {0} 应该是 sum [w]; ,你应该在做总和之前用零填充它。

然后就像你一样,你可以使用 + = 更好地完成它,它与原始代码的工作方式相同但更容易编写:

#include <stdio.h>


#define w 3
#define k 3


int tab[w][k] = {  
   {0, 1, 2},
   {3, 4, 5},
   {6, 7, 8}
};


int main()
{
    int sum[w];
    int i;
    int j;

    for (i = 0; i < w; i++)
    {
        sum[i] = 0;
    }

    for(i = 0 ; i < w ; i++)
    {
        for(j = 0 ; j < k ; j++)
        {
            sum[i] += tab[i][j];
        }

        printf("sum[%d] = %d\n", i, sum[i]);
    }  
}

然后你的代码应该运行正常