c语言输入一个n×n的方阵,把其转置并输出。 输入格式: 测试数据有多组,处理到文件尾。对于每组测试,第一行输入一个整数n(n≤10),接下来的n行每行输入n个不超过2位的整数。 输出格式: 对于每组测试,输出这n×n矩阵的转置方阵,每行的每两个数据之间留一个空格,且每行最后一格不留空格,最后一行不换行
时间: 2023-06-26 19:06:02 浏览: 72
以下是 C 语言的代码实现:
```c
#include <stdio.h>
int main()
{
int n, i, j;
while (scanf("%d", &n) != EOF) {
int matrix[n][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; j < n; j++) {
int temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
// 输出转置后的矩阵
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%d", matrix[i][j]);
if (j < n - 1) {
printf(" ");
}
}
if (i < n - 1) {
printf("\n");
}
}
}
return 0;
}
```
首先我们使用一个 while 循环,每次读取输入数据,直到文件末尾。
对于每组测试数据,我们定义一个 n×n 的二维数组 matrix,然后使用两个 for 循环读取每个元素的值。
接下来进行转置操作,这里只需要处理上三角部分的元素,将其与下三角对称位置的元素交换即可。
最后再次使用两个 for 循环输出转置后的矩阵,注意输出格式即可。
完整代码如下:
阅读全文