C++的决定数组大小问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 13:11:31
#include <iostream.h>
void main()
{
int n;
int sum1=0;
int sum2=0;
cout<<"输入一个阶数n:";
cin>>n;
int age[n][n];
cout<<"输入"<<n<<"*"<<n<<"的矩阵,数字间用空格分开,回车键换行:"<<endl;
for(int j=0;j<n;j++)
for(int k=0;k<n;k++)
cin>>age[j][k];
for(int k=0;k<n;k++)
{
sum1+=age[k][k];
sum2+=age[k][n-k-1];
}
cout<<"左上角对角线之和为:"<<sum1<<endl
<<"右上角对角线之和为:"<<sum2<<endl;
}
中间这部分
cin>>n;
int age[n][n];
怎么改对?我想自由输入n来决定数组大小。
整个程序应该怎么改?

#include <iostream.h>
void main()
{
int n;
int sum1=0;
int sum2=0;
cout<<"输入一个阶数n:";
cin>>n;
/*为二维数组分配内存大小*/
int **age=new int *[n];
//为每一维分配大小
for (int i=0;i<n;i++)
{
age[i]=new int [n];
}
cout<<"输入"<<n<<"*"<<n<<"的矩阵,数字间用空格分开,回车键换行:"<<endl;
for(int j=0;j<n;j++)
{
for(int k=0;k<n;k++)
{
cin>>age[j][k];
}
}
cout<<"***********************打印矩阵******************************"<<endl;
//打印图像
for (int h=0;h<n ;h++)
{
for (int m=0;m <n;m ++)
{
cout <<age[h][m]<<" ";
}
cout<<endl;
}
for(int k=0;k<n;k++)
{
sum1+=age[k][k];
sum2+=age[k][n-k-1];
}
cout<<"左