用一个函数实现将n×n的矩阵转置,在主函数中调用函数实现矩阵转置,并调用函数输出转置后的矩阵。
时间: 2024-05-04 08:17:18 浏览: 197
好的,以下是一个实现矩阵转置的函数和一个调用该函数的示例主函数:
```c
#include <stdio.h>
// 矩阵转置函数
void transpose(int matrix[][100], int n) {
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
// 交换matrix[i][j]和matrix[j][i]
int temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
}
int main() {
int n;
int matrix[100][100];
// 输入矩阵的行列数和元素
printf("请输入矩阵的行列数n:");
scanf("%d", &n);
printf("请输入矩阵的%d个元素(以行为主序输入):\n", n * n);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 调用矩阵转置函数
transpose(matrix, n);
// 输出转置后的矩阵
printf("矩阵转置后为:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
在这个函数中,我们使用了两个嵌套循环来遍历矩阵的上三角部分,并且在每次遍历时交换matrix[i][j]和matrix[j][i]的值,从而实现矩阵转置。在主函数中,我们首先输入矩阵的行列数和元素,然后调用transpose函数将矩阵转置,并最后输出转置后的矩阵。
阅读全文