C ++使用随机int函数填充2D数组,其中数组由用户输入声明

问题描述 投票:0回答:1

我正在尝试创建一个c ++程序,用户首先声明一个2d数组,我正在使用它:

#include <iostream>
#include <ctime> 
using namespace std;

int main() {
    int i,o; 
    cout << "Ingress rows: ";
    cin >> i; 
    cout << "Ingress columns: "; 
    cin >> o;
    int array1[i][o];
}

所以,我想要做的是一个接收这些值并用随机数填充二维数组的函数,这是我得到的(尝试和尝试几个小时后):

void fill_array(int (*arr)[], size_t fila, size_t col) {
    srand(time(NULL));
    for (size_t i = 0; i < fila; i++) {
        for (size_t > j = 0; j < col; j++) {
           arr[i][j] = rand() % 10 + 20;
        }
    }
}

我不断得到错误:

错误:无法将'int()[o]'转换为'int'以将参数'1'转换为'void fill_array(int,size_t,size_t)'fill_array(array1,i,o);

任何形式的帮助都非常受欢迎。谢谢。

c++ arrays
1个回答
2
投票

使用矢量。动态数组int array1[i][o];未在C ++标准中记录。

...
#include <vector>

void fill_array(std::vector<std::vector<int>> &arr) {
    srand(time(NULL));
    for (size_t i = 0; i < arr.size(); i++) {
        for (size_t j = 0; j < arr[i].size(); j++) {
            arr[i][j] = rand() % 10 + 20;
        }
    }
}

int main() {
    ...
    std::vector<std::vector<int>> array1(i, std::vector<int>(o));
    fill_array(array1);
}
© www.soinside.com 2019 - 2024. All rights reserved.