简单点的
时间: 2024-02-23 15:58:27 浏览: 77
好的,以下是简化版的代码:
```c
#include <stdio.h>
int main()
{
int n;
printf("请输入方阵的阶数n:");
scanf("%d", &n);
int arr[n][n]; // 定义二维数组
printf("请输入%d个数用于填充方阵:\n", n * n);
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
scanf("%d", &arr[i][j]); // 输入方阵元素
}
}
printf("转置前的方阵为:\n");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
printf("%d ", arr[i][j]); // 输出原方阵
}
printf("\n");
}
int temp;
for (int i = 0; i < n; i++)
{
for (int j = i + 1; j < n; j++)
{
// 交换对称元素
temp = arr[i][j];
arr[i][j] = arr[j][i];
arr[j][i] = temp;
}
}
printf("转置后的方阵为:\n");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
printf("%d ", arr[i][j]); // 输出转置后的方阵
}
printf("\n");
}
return 0;
}
```
这个程序使用了一个简单的二维数组来创建NxN的方阵,而不是使用动态分配的内存,因此更加简单易懂。
阅读全文