C++题目: 写一个函数将一个3*3的整型矩阵转置。
楼主你好!
完美C代码团队为你答题!
根据你的需要我将代码实现如下!
#include<iostream>using namespace std;
void T(int (*a)[3]){
for(int i=0;i<3;i++)
for(int j=0;j<2;j++){
int temp;
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
}
int main(){
int maxtrix[3][3]={{3,4,6},
{4,45,5},
{13,3,8}};
printf("原矩阵:\n");
for(int i=0;i<3;i++){
for(int j=0;j<3;j++)
cout<<maxtrix[i][j]<<" ";
cout<<endl;
}
printf("\n转置后矩阵:\n");
T(maxtrix);
for(int i=0;i<3;i++){
for(int j=0;j<3;j++)
cout<<maxtrix[i][j]<<" ";
cout<<endl;
}
return 0;
}
希望我的回答对你有帮助!望采纳!
2013-03-27
using namespace std;
void tran(int a[], int n)//假设方阵各行按上到下依次存在一维数组中,n表示方阵的阶数
{
int i,j,tem;
for(i=0; i<n ; i++)
for(j=i; j<n; j++)
{
tem=a[i*n+j];
a[i*n+j]=a[j*n+i];
a[j*n+i]=tem;
}
}
void main()
{
int i, j, n, *a;
cout<<"请输入方阵的的阶数:n= ";
cin>>n;
a=new int[n*n];
for(i=0; i<n; i++)
{
cout<<"输入第"<<i+1<<"行: ";
for(j=0; j<n; j++)cin>>a[i*n+j];
}
cout<<"经过转置后,该方阵变为:"<<endl;
tran(a,n);
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
cout<<a[i*n+j]<<"\t";
cout<<endl;
}
delete[]a;
}
/*这里是我运行的结果:
例1:
请输入方阵的的阶数:n= 3
输入第1行: 1 2 3
输入第2行: 4 5 6
输入第3行: 7 8 9
经过转置后,该方阵变为:
1 4 7
2 5 8
3 6 9
Press any key to continue例2:
请输入方阵的的阶数:n= 4
输入第1行: 1 2 3 4
输入第2行: 5 6 7 8
输入第3行: 9 10 11 12
输入第4行: 13 14 15 16
经过转置后,该方阵变为:
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
Press any key to continue
*/
using namespace std;
int main()
{
int a1,a2,a3,a4,a5,a6,a7,a8,a9;
cout<<"请输入原矩阵,数与数之间回车:"<<endl;
cin>>a1;
cin>>a2;
cin>>a3;
cin>>a4;
cin>>a5;
cin>>a6;
cin>>a7;
cin>>a8;
cin>>a9;
cout<<"原矩阵为:";
cout<<endl;
cout<<a1;
cout<<" ";
cout<<a2;
cout<<" ";
cout<<a3;cout<<endl;
cout<<a4;cout<<" ";
cout<<a5;cout<<" ";
cout<<a6;cout<<endl;
cout<<a7;cout<<" ";
cout<<a8;cout<<" ";
cout<<a9;
cout<<"矩阵转置为:";
cout<<endl;
cout<<a1;
cout<<" ";
cout<<a4;
cout<<" ";
cout<<a7;cout<<endl;
cout<<a2;cout<<" ";
cout<<a5;cout<<" ";
cout<<a8;cout<<endl;
cout<<a3;cout<<" ";
cout<<a6;cout<<" ";
cout<<a9;
return 0;
}
这个刚自己编的,很简单的写法。希望采纳。