好吧基本上我希望这段代码让用户每次都输入一个值到数组中,然后他们可以指定行数和列数。我想我的问题是,每次用户输入值时,它进入正确的列,但也进入两行,所以最后它只打印出用户在所有行中输入的最后一批数字。
很抱歉,如果这很难理解,因为这是我在本网站的第一篇文章,你可能会说我只是在学习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 Columns\n";
cin >> column;
for(int x = 0; x<row; x++) {
for(int y = 0; y<column; y++) {
cout << "Enter Value Now\n";
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;
}
}
答案 0 :(得分:5)
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
所有动态分配的内存。