找出一个二维数组的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。试用c语言编程
时间: 2023-11-06 07:26:08 浏览: 112
以下是一个简单的 C 语言程序,可以用来查找一个二维数组的鞍点:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 3
int main()
{
int matrix[ROWS][COLS] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int row, col, isSaddlePoint;
for (row = 0; row < ROWS; row++)
{
for (col = 0; col < COLS; col++)
{
int element = matrix[row][col];
int isMaxInRow = 1;
int isMinInCol = 1;
for (int i = 0; i < COLS; i++)
{
if (element < matrix[row][i])
{
isMaxInRow = 0;
break;
}
}
for (int j = 0; j < ROWS; j++)
{
if (element > matrix[j][col])
{
isMinInCol = 0;
break;
}
}
isSaddlePoint = isMaxInRow && isMinInCol;
if (isSaddlePoint)
{
printf("Saddle point found at (%d, %d): %d\n", row, col, element);
return 0;
}
}
}
printf("No saddle point found.\n");
return 0;
}
```
在这个程序中,我们首先定义了一个 $3 \times 3$ 的二维数组 `matrix`,并且设定了常量 `ROWS` 和 `COLS` 来表示数组的行数和列数。
然后,我们使用两个嵌套的 `for` 循环来遍历数组中的每个元素。对于每个元素,我们都要检查它是否是该行中的最大值,以及是否是该列中的最小值。如果是,那么我们就找到了一个鞍点,输出它的位置和值。
如果程序没有找到任何鞍点,那么它会输出一条消息表示没有找到。
阅读全文