读书人

//、输入n建立n*n维的动态二维数组

发布时间: 2012-10-18 13:46:56 作者: rapoo

//、输入n,建立n*n维的动态二维数组,使用其保存n阶矩阵,并进行转置运算
//、输入n,建立n*n维的动态二维数组,使用其保存n阶矩阵,并进行转置运算
#include "iostream"
using namespace std;


void main()
{
int i,j,t,n;
cout<<"please enter the dimensions of the matrix"<<endl;
cin>>n;
int a[5][5];
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cin>>a[i][j];
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{ if (i=j)

a[i][j]=a[j][i];


else
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;

}

cout<<a[i][j];
}
cout<<""<<endl;
}

}


//结果是 :14
//哪错了呢?请大侠指点

[解决办法]
if (i=j)

a[i][j]=a[j][i]; //->可以改成continue;


else
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;

}
cout<<a[i][j]; //->最好改成cout<<a[i][j]<<' '

}
cout<<""<<endl; //->改成cout<<endl;
}



PS:矩阵必须是5*5,n必须是5
[解决办法]
楼主可以用下面的代码,我运行了,没问题,只是没法动态二维数组,定义多大就是多大
#include "iostream"
using namespace std;
void main()
{
int i,j,t,n;
cout<<"please enter the dimensions of the matrix:"<<endl;
cin>>n;
int a[5][5];
cout<<"please enter the data:"<<endl;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>a[i][j];
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++) //注意这里,避免重复交换,就是说交换两次回到起点,等于没交换
{
if (i==j) //注意此处应为“==”
a[i][j]=a[j][i];
else
{
t=a[i][j]; //其实这个循环体只要这行开始的三行就行,不必使用if...else...语句
a[i][j]=a[j][i];
a[j][i]=t;
}
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
cout<<a[i][j]<<"\t";
cout<<endl;
}

}
我很认真写的,要给分啊!
[解决办法]

探讨
楼主可以用下面的代码,我运行了,没问题,只是没法动态二维数组,定义多大就是多大
#include "iostream"
using namespace std;
void main()
{
int i,j,t,n;
cout<<"please enter the dimensions of the matrix:"<<endl;
cin>>n;
int a[5][5……

读书人网 >C++

热点推荐