【发布时间】:2018-02-23 13:36:35
【问题描述】:
我正在使用 Atom 编辑器(1.24.0 x64)和 gpp 编译器(3.0.7,MinGW 中的 GCC)。我可以在此处添加有关系统环境的任何其他有用信息吗?对了,我编程只有一个学期,还不知道怎么调试。
问题介绍
我正在尝试总结使用二维数组生成的表中的值。在一个双 while 循环中有 3 个和。执行的总和是:
- 表格中的所有元素都已相加。这里没问题。
- 将同一行中的所有元素相加。这里有问题。返回值与预期不同。它们的价值不同,我认为是内存垃圾。
- 将同一列中的所有元素相加。这里也有问题。与上述问题相同。
当然,我期望的是正确的值。我真的不知道问题出在哪里。我已经尝试过不同的方法。除了在这里和那里更改一些循环或打印结果以查看循环的行为方式之外,我想不出更多了。当我打印出列和行的结果时,我认为是内存地址(6487568 等)。
结果和预期结果
在这里你可以看到结果:
2 3 4
5 8 0
7 5 6
The sum of every element in the chart is: 40
The sum of every element per row is:
8 //Should add up to 9
12 //Should add up to 13
4200743 //Should add up to 18
The sum of every element per column is:
15 16 4200611
//Should add up to:
//14 16 10
代码
我认为问题出在此处:
/*This sums up the the elements, for the entire table,
for every single row and for every single column.*/
while (row < ROWS)
{
column = 0;
while (column < COLUMNS)
{
sum += array[row][column];
sumRow[row] += array[row][column];
sumColumn[column] += array[row][column];
column++;
}
row++;
}
这是完整的code。由于某种原因,在线编译器在添加所有元素时返回的不是预期的40,而是29。其他结果也不同。
我已经尝试了其他方法,但均未成功:
sum += array[row][column];
sumRow[row][COLUMNS+1] += array[row][column];
sumColumn[ROWS+1][column] += array[row][column];
另一个:
sum += array[row][column];
sumRow[row] += array[row][column];
sumColumn[column] += array[row][column];
附带说明:我怀疑在 C 中不允许进行这种类型的求和,但由于我只是编程的初学者,我真的不知道。我已经在互联网上查看了这是否可能成功。
【问题讨论】:
-
请贴一个完整的例子,可以自己验证。你只放了代码sn-ps,并没有显示变量是如何声明的以及在哪里声明的。只有通过一个完整的、可编译的示例,任何人才能看到您的代码中发生了什么。
-
完整代码在提供的链接中。我认为关于如何提出问题的指南需要代码的 sn-ps,而不是完整的代码。我没有添加变量的声明,因为我认为它们不是理解问题所必需的。在链接中查找完整的代码,并告诉我变量声明对于问题是否必要。如果你看完代码有同样的想法,我会添加它们。
-
你需要阅读如何发布帮助页面,它会告诉你这在 SO 中是不礼貌的。
-
@LuisColorado SO有什么不礼貌的?请具体点。我仍在学习如何更好地在此网站上发布信息。
-
我的意思是,你写“那不礼貌”时的意思。
标签: c multidimensional-array addition