【问题标题】:How to correctly fill 2D array in C++ using user input?如何使用用户输入正确填充 C++ 中的二维数组?
【发布时间】:2019-04-06 20:35:15
【问题描述】:

我正在尝试在 C++ 中创建一个二维数组并用用户输入填充它,但是一旦我开始输入值,程序就会停止给我“进程完成,退出代码 -1073741819 (0xC0000005)”

double ** array = new double*[col];
for( i=0;i< col; i++){
    array[i] = new double [row];
}


for(i1=0;i1<row;i1++){
    for(j=0;j<col;j++){
        cin>> n;
        array[i1][j] = n;
    }
}

for(i1=0;i1<row;i1++){
    cout<<" "<<endl;
    for(j=0;j<col;j++){
        cout<< array[i1][j];
        cout<<" ";

    }
}

有什么办法解决这个问题吗?

【问题讨论】:

标签: c++ arrays


【解决方案1】:

为了简单起见,让我们忽略内存分配。您的代码应如下所示:

int val;
  int max = 16;
  int arr[max][max];

  for(int i = 0; i < max; i++){
      for(int j = 0; j < max; j++){
        cin >> val;
        arr[j][i] = val;
      }
  }

注意在二维数组中,它是数组[ROW][COLUMN]。正因为如此,您希望有一个双 for 循环,column++ 在 row++ 的整个 for 循环之后。看起来您有数组[COLUMN][ROW],这就是它无法正常工作的原因。

【讨论】:

    猜你喜欢
    • 2019-04-14
    • 1970-01-01
    • 1970-01-01
    • 2021-07-05
    • 2016-02-27
    • 1970-01-01
    • 1970-01-01
    • 2018-10-12
    • 2021-02-10
    相关资源
    最近更新 更多