用C语言编写一个函数,由实参传来一个矩阵A[M][N],按列输出它每一列上最大值和最小值的差。
时间: 2024-02-11 11:06:17 浏览: 75
一个有用的C语言方面的文章
以下是用 C 语言编写的函数,可以实现您的要求:
```c
#include <stdio.h>
void column_diff(int A[][N], int M, int N) {
int max, min, diff;
for (int j = 0; j < N; j++) {
max = A[0][j];
min = A[0][j];
for (int i = 1; i < M; i++) {
if (A[i][j] > max) {
max = A[i][j];
}
if (A[i][j] < min) {
min = A[i][j];
}
}
diff = max - min;
printf("The difference of column %d is %d\n", j+1, diff);
}
}
```
该函数的参数包括一个二维数组 `A`,以及它的行数 `M` 和列数 `N`。函数通过两层循环遍历矩阵的每一列,找出每一列上的最大值和最小值,并计算它们的差值。最后,函数输出每一列的差值。
您可以在程序中调用该函数,将矩阵作为实参传递给它,如下所示:
```c
#define M 3
#define N 4
int main() {
int A[M][N] = {{3, 5, 2, 7}, {1, 4, 6, 8}, {9, 2, 3, 0}};
column_diff(A, M, N);
return 0;
}
```
在这个例子中,我们定义了一个 3 行 4 列的矩阵 `A`,并将其作为实参传递给 `column_diff` 函数。函数输出了每一列的最大值和最小值之差。
阅读全文