外部for循环只运行一次,而不是3次,然后当调用函数sum时,数组值不加在一起。
#include<iostream>
using namespace std;
int sum(int a[][3]);
int main()
{
int array[2][3];
for (int num1; num1 < 3; num1 ++)
{
for (int num2; num2 < 4; num2 ++)
{
cout << "Enter a number to be stored in array[" << num1 << "][" << num2 << "]: ";
cin >> array[num1][num2];
}
}
sum(array);
return 0;
}
// Below this is all of the functions that are used in this program
int sum(int a[][3])
{
int sum;
for (int num1; num1 < 3; num1 ++)
{
for (int num2; num2 < 4; num2 ++)
sum += a[num1][num2];
}
cout << "The sum is: " << sum << endl;
}
我试过切换函数参数的值,例如将其设置为“a[][]”和“a[2][3]”,但这两个都不起作用,至于for循环,我尝试将num1的值增加到12,认为每次迭代都必须加1,但这当然不起作用
1条答案
按热度按时间nhhxz33t1#
试试看,你可能会取得更大的成功。
1.用
int num1 = 0;
代替int num1;
,给变量num1
一个初始值0
。你不必麻烦给变量一个初始值的想法是一个奇怪的想法。不知道初学者是从哪里学来的。你在int sum;
上也有同样的问题,应该是int sum = 0;
。1.数组的索引从0到(但不包括)数组的大小,所以如果你的数组的大小是2,正确的循环是
for (int num1 = 0; num1 < 2; num1++)
而不是for (int num1 = 0; num1 < 3; num1++)
,很容易记住,在for循环中使用<
,并使用与数组大小相同的数字作为限制。1.最后,很可能你的函数应该returnthe sum,而不是printit(初学者经常混淆这两个术语),打印是在
main
中完成的。