C++怎么定义一个N行N列的数组

数组周围赋值1 其余赋值2
#include<iostream>
#include<stdlib.h>

using namespace std;

int main(int argc, char **argv)
{
//动态分配二维数组空间
//动态定义和初始化二维数组 部分代码
int row, col;
int i, j;
cout << "输入二维数组的行,列 :";
cin >> row >> col;
int **p2;
p2 = new int*[row];
for (i = 0; i < row; i++)
p2[i] = new int[col];
//输入二维数组的值
for (i = 0; i < row; i++)
for (j = 0; j < col; j++)

//输出二维数组
cout << "输出二位数组:" << endl;
for (i = 0; i < row; i++)
{
for (j = 0; j < col; j++)
cout << p2[i][j] << ' ';
cout << endl;
}
//释放二维数组
for (i = 0; i < row; i++)
delete[]p2[i];
delete[]p2;
}

在这个基础上应该怎么改

#include <iostream>

using namespace std;
int main(int argc, char** argv) 
{
int n,m;
cout<<"输入行数:";
cin>>n;
cout<<"输入列数:";
cin>>m;
int** s=new int*[n];  //动态定义二维数组 
for(int i=0;i<n;i++)
{
    s[i]=new int[m];
}
for(int i=0;i<n;i++)  //赋值 
{
for(int j=0;j<m;j++)
{
if(i==0 || i==n-1 || j==0 || j==m-1)
{
s[i][j]=1;
}
else
{
s[i][j]=2;
}
}
}
for(int i=0;i<n;i++)  //输出 
{
printf("\n");
for(int j=0;j<m;j++)
{
printf("%d ",s[i][j]);
}
}
for(int i=0;i<n;i++)   //释放二维数组 
{
delete[] s[i];
}
delete[] s;
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-07-08
#include<iostream>
#include<stdlib.h>
using namespace std;
int main(int argc, char **argv)
{
//动态分配二维数组空间
//动态定义和初始化二维数组 部分代码 
int row, col;
int i, j;
cout << "输入二维数组的行,列 :";
cin >> row >> col;
int **p2;
p2 = new int*[row];
for (i = 0; i < row; i++)
p2[i] = new int[col];
//输入二维数组的值 
for (i = 0; i < row; i++)
  for (j = 0; j < col; j++)
{
p2[i][j] = ((i % (row-1)) && (j % (col-1)))?2:1;
}
//输出二维数组 
cout << "输出二位数组:" << endl;
for (i = 0; i < row; i++)
{
for (j = 0; j < col; j++)
cout << p2[i][j] << ' ';
cout << endl;
}
//释放二维数组 
for (i = 0; i < row; i++)
delete[]p2[i];
delete[]p2;
cin >> i;
}

第2个回答  2017-08-18
#include<iostream>
#include<vector>
using namespace std;
int main()
{
 int M, N;
 cin >> M >> N;
 vector<vector<int>> A(M);
 for (auto i = 0; i!=M; i++)
 {
  A[i].resize(N);
 }
 system("pause");
 return 0;
}

第3个回答  2019-06-28
1234567891011121314151617181920212223242526272829303132333435363738394041424344#include <iostream> using namespace std;int main(int argc, char** argv) { int n,m; cout<<"输入行数:"; cin>>n; cout<<"输入列数:"; cin>>m; int** s=new int*[n]; //动态定义二维数组 for(int i=0;i<n;i++) { s[i]=new int[m]; } for(int i=0;i<n;i++) //赋值 { for(int j=0;j<m;j++) { if(i==0 || i==n-1 || j==0 || j==m-1) { s[i][j]=1; } else { s[i][j]=2; } } } for(int i=0;i<n;i++) //输出 { printf("\n"); for(int j=0;j<m;j++) { printf("%d ",s[i][j]); } } for(int i=0;i<n;i++) //释放二维数组 { delete[] s[i]; } delete[] s; return 0;}
第4个回答  2017-08-26
char (*pchar)[10] = new char[N][10];
delete [] pchar;
https://msdn.microsoft.com/en-us/library/kewsb8ba.aspx
相似回答