我在计算 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/