多维数组问题

Multi Dimension Arrays issue

本文关键字:问题 数组      更新时间:2023-10-16

好的,所以基本上我希望这段代码让用户每次在数组中输入一个值,他们就可以指定行和列的数量。我想我的问题在于每次用户输入值时,它都会进入正确的列,但也进入两行,因此到最后它只打印出用户在所有行中输入的最后一批数字。

抱歉,如果这很难理解,因为这是我在这个网站上的第一篇文章,而且你可能知道我只是在学习 c++。因此,如果您能提供帮助,将不胜感激。

#include <iostream>
using namespace std;
int main()
{
    int row;
    int column;
    int value[row][column];
    cout << "How Many Rows?n";
    cin >> row;
    cout << "How Many Columnsn";
    cin >> column;
    for(int x = 0; x<row; x++) {
        for(int y = 0; y<column; y++) {
            cout << "Enter Value Nown";
            cin >> value[x][y];
        }
        cout << endl;
    }
    cout << endl;
    for(int a = 0; a < row; a++) {
        for(int b = 0; b < column; b++) {
            cout << value[a][b] << " ";
        }
        cout << endl;
    }
}
int value[row][column];

声明一个数组,其维度基于 2 个未初始化的值。

如果您不必使用 C 样式数组,则可以使用

std::vector<std::vector<int>> value;

,然后根据用户输入选择其尺寸。

或者,您可以继续使用 C 样式数组,如果您像

int** value;
// input row/column
value = new int*[row];
for (int i=0; i<row; i++) {
    value[i] = new int[column];
}

如果使用后一种方法,请确保稍后还delete所有动态分配的内存。