我在计算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];
}
}
效果不佳。我尝试过另一种方式,但它只计算了第一行。
请帮帮我,谢谢。
答案 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]);
}
}
然后你的代码应该运行正常