矩阵的转置

对于的矩阵,使用两个指针变量,可以方便实现(i,j)处元素与(j,i)处元素交换位置。令指针Arow=&A[i][0],则Arow[j]可实现对第i行j列元素的访问。令指针Bptr=&A[0][i],则*Bptr就可以访问(0,i)处元素,然后,令Bptr+=M,就可访问同列不同行的元素。

代码实现

#define M 3

int A[3][3]={{1,2,3},{4,5,6},{7,8,9}};

void transpose(int A[M][M]);

void transpose(int A[M][M])

{

int i,j;

int t;

int *Arow;

int *Bptr;

for(i=0;i<M;i++)

{

Arow=&A[i][0];

Bptr=&A[0][i];

for(j=0;j<i;j++)

{

t=Arow[j];

Arow[j]=*Bptr;

*Bptr=t;

Bptr+=M;

}

}

}

void main()

{

int B[M][M];

int i,j;

for(i=0;i<M;i++) //把A矩阵元素存储在B矩阵中

for(j=0;j<M;j++)

B[i][j]=A[i][j];

transpose(A); //把A矩阵转置

}

运行结果

相关推荐
Tisfy2 分钟前
LeetCode 2272.最大波动的子字符串:转为多次的最大子数组和 - 一步步思考推导
算法·leetcode·动态规划·字符串·题解
查理零世14 分钟前
【算法】 区间合并(附蓝桥杯真题) python
python·算法·蓝桥杯
Codingwiz_Joy31 分钟前
Day09 -实例:拿到加密密文进行解密
算法·安全·安全性测试
float_六七1 小时前
双指针算法
算法
BingLin-Liu1 小时前
图论之cruskal算法(克鲁斯卡尔)
数据结构·算法·图论
进取星辰1 小时前
PyTorch 深度学习实战(15):Twin Delayed DDPG (TD3) 算法
pytorch·深度学习·算法
strive-debug2 小时前
C语言之 条件编译和预处理指令
算法
Sacuki2 小时前
BP神经网络公式推导与代码实现
算法
山登绝顶我为峰 3(^v^)33 小时前
VSCode + CMake
ide·vscode·算法·计算机·编辑器