gpt4 book ai didi

c++ - 如何将二维数组中的值加倍? C++

转载 作者:行者123 更新时间:2023-11-28 02:25:49 26 4
gpt4 key购买 nike

我正在尝试将二维数组中的每个数字加倍。例如,array1 中的值将变为 {2,4,6}{4,8,12}{6,12,18}。问题是我的代码将唯一的第一个数字加倍。有人可以指导我该怎么做吗?

#include <iostream> 
#include <iomanip>

using namespace std;

const int N = 3;

int doubleValues(int arr[][N])
{
for (int i = 0; i < N; i++)
{
arr[i][N] *= 2;

for (int j = 0; j < N; j++)
{
arr[N][j] *= 2;
return arr[i][j];
}
}
}

void showArray(int arr[][N])
{
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
cout << setw(4) << arr[i][j] << " ";
}

cout << endl;
}
}

int main()
{
int array1 [N][N] = {
{ 1, 2, 3 } ,
{ 2, 4, 6 } ,
{ 3, 6, 9 }
};

int array2 [N][N] = {
{ 3, 4, 5 } ,
{ 6, 8, 10 } ,
{ 9, 12, 15 }
};

cout << "The values for array1 doubled are: \n";
doubleValues(array1);
showArray(array1);

cout << "The values for array2 double are: \n";
doubleValues(array2);
showArray(array2);

system("pause");
}

最佳答案

doubleValues 函数的内部循环中有一个 return arr[i][j]。将第一个元素加倍后,您的函数无需做任何更多工作即可返回。

解决方案是删除此return 语句。 (并将 doubleValues 更改为 void 函数,因为它不需要返回值。)

此外,您的 doubleValues 函数似乎无论如何都在修改错误的元素。您对 arr[i][N]arr[N][j] 的访问都超出了您声明​​的数组大小的范围。您可能应该在循环中修改 arr[i][j]

关于c++ - 如何将二维数组中的值加倍? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30719028/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com