c - 数组打印值的总和

标签 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];
     }
}

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

请帮助我,谢谢。

最佳答案

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]);
    }  
}

那么你的代码应该可以正常运行

关于c - 数组打印值的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41321030/

相关文章:

c# - 如何在struct中初始化char数组

c - 字符串链表仅打印最后输入

c - C风格的字符串文件格式难题

javascript - 使用标准数组值对数组进行排序或排列

javascript - spring mvc 使用 javascript 附加 inslide [[]] 多个数组值

c++ - 使用 std::fill 填充多维数组的安全方法是什么?

c - 如何在函数中传递指针?

c - 简单套接字监听器和线程内存泄漏

c - 尝试写入修改后的结构时出现段错误

c# - 凯撒密码移位(使用字母数组)