【问题描述】将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#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; }
C语言:将n*n(n<=100)的矩阵转置(要求用指针做)
于 2023-03-18 21:53:52 首次发布