将一个3X3的矩阵转置,用一个函数实现之,会加分

2025-04-28 13:43:17
推荐回答(3个)
回答1:

#include
using namespace std;

void func(int a[3][3]); //声明转换函数

int main()
{
int a[3][3];
cout<<"请输入一个三行三列的数组:\n"; //输入一个三行三列的数组
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
cin>>a[i][j];
cout<<"所输入的数组为:\n";
for(i=0;i<3;i++)
cout< cout< func(a); //调用函数
cout<<"矩阵转置后为:\n"; //输出转换后的数组
for(i=0;i<3;i++)
cout< cout< return 0;
}

void func(int a[3][3]) //定义转换函数,实现转换功能
{
int t;
for(int i=0;i<3;i++)
for(int j=0;j {
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}

运行结果:
请输入一个三行三列的数组:
1 2 3 4 5 6 7 8 9
所输入的数组为:
1 2 3
4 5 6
7 8 9

矩阵转置后为:
1 4 7
2 5 8
3 6 9

Press any key to continue

回答2:

#include
#define N 3
int zhuanzhi(int arr[N][N]){
int i,j,a[N][N];
for(i=0;i for(j=0;j a[i][j]=arr[j][i];

for(i=0;i for(j=0;j printf( "%d\t ",a[i][j]);
printf( "\n ");
}
return 0;
}
int main()
{
int arr[N][N]={1,2,3,4,5,6,7,8,9},i,j;
for(i=0;i for(j=0;j printf( "%d\t ",arr[i][j]);
printf( "\n ");
}
printf( "\n\n ");
zhuanzhi(arr);
return 0;
}

回答3:

建议使用MATLAB,这会十分简单