两种方法,简单一点的,C++允许动态定义数组,所以可以这样
#include <iostream> using namespace std; int main() { int m, n; cin >> m >> n; int a[m][n]; int i, j; for(i = 0; i < m; i ++) for(j = 0; j < n; j ++) cin >> a[i][j]; cout << "print:\n"; for(i = 0; i < m; i ++) { for(j = 0; j < n; j ++) cout << a[i][j]<< ' '; cout <<endl; } } 复杂一点的,完全动态分配 #include <iostream> using namespace std; int main() { int m, n; int i, j; cin >> m >> n; int ** a; a = new int * [m]; for(i = 0; i < m; i ++) a[i] = new int [n]; for(i = 0; i < m; i ++) for(j = 0; j < n; j ++) cin >> a[i][j]; cout << "print:\n"; for(i = 0; i < m; i ++) { for(j = 0; j < n; j ++) cout << a[i][j]<< ' '; cout <<endl; } for(i = 0; i < m; i ++) delete []a[i]; delete []a; }