输入一个mXm的整数矩阵,进行转置后输出。2<n <20 输入格式: 第1行输入矩阵的行数。 其后的 m 行 每行输入m个整数,数据之间用空格分隔 输出格式为数据之间用空格分隔,最后一个数据后没有空格。用c语言编程
时间: 2024-03-15 07:47:37 浏览: 79
好的,以下是C语言的代码实现:
```c
#include <stdio.h>
int main() {
int n, m;
scanf("%d", &n);
m = n; // 因为是矩阵,列数和行数相等
int matrix[n][m];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 转置矩阵
int transposed[m][n];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
transposed[i][j] = matrix[j][i];
}
}
// 输出转置后的矩阵
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
printf("%d", transposed[i][j]);
if (j < n - 1) {
printf(" ");
}
}
printf("\n");
}
return 0;
}
```
代码解释:
1. 首先读入矩阵的行数n,因为是m * m的矩阵,所以列数m也等于n。
2. 然后利用二重循环读入矩阵的元素,存储在数组matrix中。
3. 利用另一个二维数组transposed来存储转置后的矩阵。外层循环遍历列数,内层循环遍历行数,将matrix[j][i]的值赋给transposed[i][j]。
4. 最后再次利用二重循环输出转置后的矩阵,注意每个数字之间要用空格隔开,每行末尾不要输出空格,而是换行。
阅读全文