#include <iostream>
using namespace std;
int main()
{
int n=0;
cout<<"请输入一个整数N,以便生成N*N的数字矩阵"<<endl;
cin>>n;
if (n>100 || n<1)
{
cout<<"请输入1-100之间的数字:"<<endl;
system("pause");
return -1;
}
//动态生成n*n数组并写入数据
int *p=new int[n*n];
for (int i=0;i<n;i++)
{
for (int j=0;j<n;j++)
{
*(p+i*n+j)=j+1;//指针循环推进并写入数据
}
}
cout <<"生成的矩阵如下:"<<endl<<endl;
//其实在上一个循环就可以显示原始数据数组,为了看得明白,再循环一次
for (int i=0;i<n;i++)
{
for (int j=0;j<n;j++)
{
cout <<"\t"<<*(p+j*n+j);
}
cout<<endl;
}
cout<<endl<<endl<<"转置后的矩阵如下:"<<endl<<endl;
for (int i=0;i<n;i++)
{
for (int j=0;j<n;j++)
{
//这个和上一个循环只有一句代码不同,就是最后的j和i就能转置矩阵
cout <<"\t"<<*(p+j*n+i);
}
cout<<endl;
}
delete[] p;
system("pause");
return 0;
}
|