如何以以下方式转置2D矩阵?
我知道这样做有一定的模式,但是硬编码不是一种方式,所以如果有人能提供一些建议,那就太好了。
原件:
4 5 2 0
7 2 1 4
9 4 2 0
7 8 9 3
转到
转置:
3 0 4 0
9 2 1 2
8 4 2 5
7 9 7 4
发布于 2015-05-25 19:30:26
for(i=1; i<=n; i++) {
for(j=1; j<=n-i; j++) {
aux = a[i][j];
a[i][j] = a[n-j+1][n-i+1];
a[n-j+1][n-i+1] = aux;
}
}通过观察矩阵,你可以看到,第一行与第n-i+1列互换,这相当于相对于第二对角线被交换的对称元素。
https://stackoverflow.com/questions/30444601
复制相似问题