#include
const int N = 3;
void Transpose(int *a,int n) {
int i,j,t;
for(i = 0; i < n - 1; ++i) {
for(j = i + 1; j < n; ++j) {
t = *(a + n * i + j);
*(a + n * i + j) = *(a + n * j + i);
*(a + n * j + i) = t;
}
}
}
void Show(int a[][N]) {
int i,j;
for(i = 0; i < N; ++i) {
for(j = 0; j < N; ++j)
printf("%d ",a[i][j]);
printf("\n");
}
}
int main() {
int a[N][N] = {1,2,3,4,5,6,7,8,9};
printf("原始矩阵:\n");
Show(a);
Transpose(&a[0][0],N);
printf("转置后:\n");
Show(a);
Transpose(a[0],N);
printf("再转置后:\n");
Show(a);
return 0;
}