首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

//、输入n,建立n*n维的动态二维数组,应用其保存n阶矩阵,并进行转置运算

2012-10-18 
//、输入n,建立n*n维的动态二维数组,使用其保存n阶矩阵,并进行转置运算//、输入n,建立n*n维的动态二维数组,

//、输入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……

热点排行