【问题描述】将n*n(n<=100)的矩阵转置(要求用指针做)
【输入形式】输入n和n*n的矩阵
【输出形式】输出转置后的矩阵
【样例输入】
3 1 2 3 4 5 6 7 8 9
【样例输出】
1 4 7 2 5 8 3 6 9
#include <stdlib.h>
#include<stdio.h>
int main()
{
int n = 0;
int i = 0;
int j = 0;
scanf("%d", &n);
int a[n][n];
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
scanf("%d", &a[i][j]);
}
int *pa = &a[0][0];
int temp;
for (i = 0; i < n; i++)
{
for (j = i; j < n; j++)
{
temp = *(pa+i*n+j);
*(pa+i*n+j) = *(pa+j*n+i);
*(pa+j*n+i) = temp;
}
}
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
printf("%d ", *(pa+i*n+j));
}
printf("\n");
}
return 0;
}