gpt4 book ai didi

c++ - 接受一个二维数组,乘以一个整数,然后在 C++ 中返回新的二维数组的函数?

转载 作者:行者123 更新时间:2023-12-03 07:00:16 25 4
gpt4 key购买 nike

假设我有一个包含整数元素的 3x4 数组,我想将此数组传递给一个函数,然后该函数将所有元素乘以某个整数“b”,然后返回这个新数组,我该怎么做?这就是我目前所拥有的

#include <iostream>
#include <math.h>

using namespace std;

// my function for multiplying arrays by some integer b
int* multarray(int (*a)[4], int b)
{
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
*(*(a+i)+j) *= b;
}
}
return *a;
}

int main()
{
// creating an array to test, values go from 1-12
int arr [3][4];
int k = 1;

for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
arr[i][j] = k;
k++;
}
}

// trying to setup new 'array' as a product of the test array
int *newarray;
newarray = multarray(arr,3);

// printing values (works with *(newarray+i) only)
for (int i = 0; i < 3; i++)
{
for (int j=0; j<4; j++)
{
cout << *(*(newarray+i)+j);
}
}


return 0;
}
如果我在打印所有值时不包含 j 部分,这会起作用,但现在它告诉我我有一个错误:一元'*'的无效类型参数(有'int')

最佳答案

您的函数没有返回新数组,而是修改现有数组。因此(假设这对您来说不是问题)您应该将返回类型更改为 void。

void multarray(int (*a)[4], int b)
{
...
}
然后
multarray(arr,3);
for (int i = 0; i < 3; i++)
{
for (int j=0; j<4; j++)
{
cout << *(*(arr+i)+j);
}
}
如果你真的想要一个返回一个新数组的函数,那么这是一个完全不同(而且更复杂)的问题。除此之外,严格来说,在 C++ 中返回数组是不可能的。

关于c++ - 接受一个二维数组,乘以一个整数,然后在 C++ 中返回新的二维数组的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64763717/

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