重新写一个c语言矩阵转置 输入一个数字构成的矩形,将矩形的值进行转置后打印 输入: 第一行 正整数n(1<n<10),表示矩阵的边长 随后输入一个矩阵 输出: 转置后的矩阵 样例输入: 3 1 2 3 4 5 6 789 样例输出: 1 4 7 258 369
时间: 2024-10-13 18:18:16 浏览: 33
在C语言中,你可以通过以下几个步骤来编写一个函数实现矩阵转置的功能:
```c
#include <stdio.h>
// 定义矩阵结构体
typedef struct {
int rows;
int cols;
int data[10][10]; // 矩阵大小预设为10x10,实际需要根据输入调整
} Matrix;
// 函数用于矩阵转置
void transpose(Matrix *matrix) {
int i, j;
for (i = 0; i < matrix->rows; i++) {
for (j = i; j < matrix->cols; j++) {
int temp = matrix->data[i][j];
matrix->data[i][j] = matrix->data[j][i]; // 交换行和列的值
matrix->data[j][i] = temp;
}
}
}
// 主函数接收用户输入并打印转置后的矩阵
int main() {
int n;
scanf("%d", &n); // 获取矩阵的边长
if (n <= 0 || n > 10) { // 检查输入是否合法
printf("Invalid input! Please enter a number between 1 and 10.\n");
return 1;
}
Matrix matrix;
matrix.rows = matrix.cols = n;
// 读取原始矩阵数据
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &matrix.data[i][j]);
}
}
transpose(&matrix);
// 打印转置后的矩阵
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", matrix.data[i][j]);
}
printf("\n");
}
return 0;
}
```
样例输入:
```sh
$ ./matrix_transpose
3
1 2 3
4 5 6
7 8 9
```
样例输出:
```sh
1 4 7
2 5 8
3 6 9
```
阅读全文