C ++中的此数组输入代码有什么问题?

时间:2018-11-09 17:30:18

标签: c++ arrays

我需要编写代码以通过键盘输入制作2D数组,以便在程序中使用它。我在代码中找不到任何问题,但无法正常工作。你能解释一下吗?我还是个初学者,需要一个尽可能简单的解决方案。

#include <iostream>
using namespace std;
int main(){
int n,m;
cin >> n;
cin >> m;
int s[n-1][m-1];
for(int i=0; i<n; i++){
  for(int j=0; j<m; j++){
    cin >> s[i][j];
  }
}
//Test by printing out the elements
for (int i=0; i<n; i++){
  for (int j=0; j<m; j++){
    cout << s[i][j] << " ";
  }
}

输入:

3 4
1 2 3 4
5 6 7 8
9 0 1 2

输出:

 1 2 3 5 5 6 7 9 9 0 1 2

元素s [0] [3]等于s [1] [0],而s [1] [3]等于s [2] [0]。怎么样?

1 个答案:

答案 0 :(得分:-3)

您将行和列混合在一起。您应该将s[i][j]设置为s[j][i]。此外,就int s[n-1][m-1];而言,我认为您正在初始化此错误。虽然数组从索引0开始到索引(大小-1),但是在初始化数组时,它应该是array[enteredSize],而不是array[enteredSize - 1]。祝你好运!