用c语言编码 用二维数组作为函数参数,实现矩阵转置。按如下函数原型编程计算并输出m×n阶矩阵的转置矩阵。其中,m和n的值由用户从键盘输入。已知m和n的值都不超过10。 void Transpose(int a[][N], int at[][M], int m, int n); void InputMatrix(int a[][N], int m, int n); void PrintMatrix(int at[][M], int n, int m); 输入提示信息:"Input m, n:" "Input %d*%d matrix:\n" 输入格式:"%d,%d" 输出提示信息和格式:"The transposed matrix is:\n" 输出格式(输完矩阵的一行要换行):"%d\t"
时间: 2024-02-27 14:53:07 浏览: 137
C语言中二维数组作为函数参数来传递的三种方法
好的,以下是你所需要的C语言代码:
```
#include <stdio.h>
#define N 10
#define M 10
void Transpose(int a[][N], int at[][M], int m, int n);
void InputMatrix(int a[][N], int m, int n);
void PrintMatrix(int at[][M], int n, int m);
int main() {
int a[N][N], at[M][M], m, n;
printf("Input m, n:");
scanf("%d,%d", &m, &n);
printf("Input %d*%d matrix:\n", m, n);
InputMatrix(a, m, n);
Transpose(a, at, m, n);
printf("The transposed matrix is:\n");
PrintMatrix(at, n, m);
return 0;
}
void InputMatrix(int a[][N], int m, int n) {
int i, j;
for(i = 0; i < m; i++) {
for(j = 0; j < n; j++) {
scanf("%d", &a[i][j]);
}
}
}
void Transpose(int a[][N], int at[][M], int m, int n) {
int i, j;
for(i = 0; i < n; i++) {
for(j = 0; j < m; j++) {
at[i][j] = a[j][i];
}
}
}
void PrintMatrix(int at[][M], int n, int m) {
int i, j;
for(i = 0; i < n; i++) {
for(j = 0; j < m; j++) {
printf("%d\t", at[i][j]);
}
printf("\n");
}
}
```
这个程序中,我们首先通过`scanf`函数从用户获取矩阵的行数和列数,然后调用`InputMatrix`函数读入矩阵。接下来,调用`Transpose`函数进行矩阵转置操作,并将结果存储到新的二维数组`at`中。最后,调用`PrintMatrix`函数输出转置后的矩阵。注意,输出矩阵时每行最后要加一个换行符。
希望这个代码能够帮助到你!如果你还有其他的问题,欢迎随时提出。
阅读全文