编写程序,实现矩阵(3行3列)的转置(即行列互换)

编写程序,实现矩阵(3行3列)的转置(即行列互换),第1张

#include<iostream.h>

void main()

{

int a[3][3],b[3][3]

int p=0

for(int i=0i<3i++)

{

for(int j=0j<3j++)

{

cin>>a[i][j]

b[j][i]=a[i][j]

}

}

cout<<"原矩阵为:"<<endl

for(int m=0m<3m++)

{

for(int n=0n<3n++)

{

cout<<a[m][n]<<" "

p++

if(p%3==0)

cout<<endl

}

}

cout<<endl

cout<<"转置后的矩阵为:"<<endl

for(int c=0c<3c++)

{

for(int d=0d<3d++)

{

cout<<b[c][d]<<" "

p++

if(p%3==0)

cout<<endl

}

}

}

#include <stdio.h>

#define ARRAY_SIZE 2

void zhuanZhi(int a[][ARRAY_SIZE])

void outPut(int a[][ARRAY_SIZE])

void main()

{

int a[ARRAY_SIZE][ARRAY_SIZE]

int i,j

for (i=0i<ARRAY_SIZEi++)

{

for (j=0j<ARRAY_SIZEj++)

{

scanf("%d",&a[i][j])

}

}

outPut(a)

zhuanZhi(a)

outPut(a)

}

void outPut(int a[][ARRAY_SIZE])

{

int i,j

for (i=0i<ARRAY_SIZEi++)

{

for (j=0j<ARRAY_SIZEj++)

{

printf("%-5d",a[i][j])

}

printf("\n")

}

printf("\n")

}

void zhuanZhi(int a[][ARRAY_SIZE])

{

int i,j,nTemp

for (i=0i<ARRAY_SIZEi++)

{

for (j=0j<=ij++)

{

nTemp=a[i][j]

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

a[j][i]=nTemp

}

}

}

思路:定了两个二维数组分别存储转置前后的矩阵,接着for循环依次转置即可。

//参考代码

#include<stdio.h> 

int main() 

int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},b[4][3] 

int i,j 

for(i=0i<3i++) 

for(j=0j<4j++) 

b[j][i]=a[i][j] 

for(i=0i<4i++) 

for(j=0j<3j++) 

printf("%2d ",b[i][j]) 

printf("\n") 

return 0

}

/*

运行结果:

 1  5  9

 2  6 10

 3  7 11

 4  8 12

*/


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11051492.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-13
下一篇2023-05-13

发表评论

登录后才能评论

评论列表(0条)

    保存