c语言判断一个二维数组是否存在鞍点,若存在,则输出鞍点及其行号和列号;否则输出没有鞍点信息。“鞍点”是指这样的元素:它在本行是最大元素,而在本列是最小的元素。
时间: 2024-05-03 21:16:29 浏览: 166
可以通过以下代码来判断一个二维数组是否存在鞍点,并输出该鞍点的位置和行列号:
```c
#include <stdio.h>
#define ROW 3
#define COL 4
int main()
{
int a[ROW][COL] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
int i, j, k, max, min, flag = 0;
for (i = 0; i < ROW; i++) {
max = a[i][0];
for (j = 1; j < COL; j++) {
if (a[i][j] > max) {
max = a[i][j];
k = j;
}
}
min = a[0][k];
for (j = 1; j < ROW; j++) {
if (a[j][k] < min) {
min = a[j][k];
}
}
if (min == max) {
printf("The saddle point is %d, located in row %d, column %d\n", max, i, k);
flag = 1;
}
}
if (!flag) {
printf("No saddle point!\n");
}
return 0;
}
```
首先,我们遍历每一行,找出该行的最大值和对应的列号。然后再遍历该列,找出该列的最小值。若该最小值等于该行的最大值,则说明该元素为鞍点,输出其位置和行列号。最后通过 flag 变量来判断是否存在鞍点,若不存在则输出相应信息。
阅读全文