4)找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列 上最小。可能没有鞍点C语言简单
时间: 2023-11-06 11:16:23 浏览: 84
以下是一个找出二维数组鞍点的 C 语言程序:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 4
int main(void) {
int arr[ROWS][COLS] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
int i, j, k, max, min, saddle;
for (i = 0; i < ROWS; i++) {
max = arr[i][0];
for (j = 1; j < COLS; j++) {
if (arr[i][j] > max) {
max = arr[i][j];
}
}
for (k = 0, saddle = 1; k < ROWS; k++) {
if (arr[k][j] < max) {
saddle = 0;
break;
}
}
if (saddle) {
printf("鞍点元素为 %d,位于第 %d 行第 %d 列。\n", max, i, j);
return 0;
}
}
printf("该二维数组没有鞍点。\n");
return 0;
}
```
程序中,我们首先定义了一个 `3x4` 的二维数组 `arr`,然后使用两个循环遍历每一行,并在每一行中找到最大值。接着,我们使用另一个循环遍历每一行中最大值的那一列,检查该列中的每个元素是否都小于或等于最大值。如果是,那么我们就找到了鞍点,输出该元素的值和它在数组中的位置。如果没有找到鞍点,我们就输出没有找到的提示信息。
阅读全文