我需要编写代码以通过键盘输入制作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]。怎么样?
答案 0 :(得分:-3)
您将行和列混合在一起。您应该将s[i][j]
设置为s[j][i]
。此外,就int s[n-1][m-1];
而言,我认为您正在初始化此错误。虽然数组从索引0开始到索引(大小-1),但是在初始化数组时,它应该是array[enteredSize]
,而不是array[enteredSize - 1]
。祝你好运!