C语言:用指针实现 矩阵转置

【问题描述】将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 
#include

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;

}

你可能感兴趣的:(矩阵,c语言)