使用数组指针编写程序,将一个n×n(n≤10)的矩阵进行转置,即将行与列互换,转置后再按n×n矩阵形式输出。 输入格式: 输入整数n,从第2行开始依次输入n×n个整数,各数以一个空格间隔。 输出格式: 输出n行n列的二维数组,每个元素右对齐输出占4列。c语言
时间: 2024-05-05 20:21:44 浏览: 105
C/C++实现矩阵的转置(示例代码)
以下是一个使用数组指针的C语言程序,可以实现矩阵转置并输出:
```c
#include <stdio.h>
int main() {
int n, i, j;
printf("请输入矩阵的大小n(n<=10):");
scanf("%d", &n);
int matrix[n][n]; // 定义一个n×n的二维数组
int (*p)[n] = matrix; // 定义一个指向二维数组的指针
// 输入矩阵数据
printf("请输入矩阵数据:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 转置矩阵
for (i = 0; i < n; i++) {
for (j = i + 1; j < n; j++) {
int temp = *(*(p+i)+j);
*(*(p+i)+j) = *(*(p+j)+i);
*(*(p+j)+i) = temp;
}
}
// 输出矩阵
printf("转置后的矩阵为:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%4d", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
程序中定义了一个二维数组 `matrix` 来存储矩阵数据,定义了一个指向二维数组的指针 `p`,通过指针操作来实现矩阵转置。最后按照题目要求输出转置后的矩阵。
阅读全文