如何用行指针实现矩阵转置?修改如下程序。

如何用行指针实现矩阵转置?修改如下程序。,第1张

#include <stdio.h>

#include <stdlib.h>

int main()

{

int a[3][3] = { { 1,2,3 },{ 3,4,5 碧正},{ 5,6,7 } }

int i, j, temp

int(*p)[3] = a //行指针

//int *q = a[0]

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

{

    for (j = i + 1 j<3 j++)

    {

        temp = *(*(p + j) + i)

        *(*(p + j) + i) = *(*(p + i) + j)

  好慧塌      *(*(p + i) + j) = temp

    }

}

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

{

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

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

    printf("\n")

}

system("pause")

return 0

}

有山腔两个错误

1. trans(p)应该是trans(a)

2. void trans(int (*pointer)[3]) 把矩皮唯蔽阵翻了两遍,所以又翻回去了,燃州只翻一半就行了

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

for(j=0j<ij++)


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

原文地址: https://outofmemory.cn/yw/12496437.html

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

发表评论

登录后才能评论

评论列表(0条)

保存