用C找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。
时间: 2023-11-06 13:07:04 浏览: 84
找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列上最小 也可能没有鞍点
可以使用以下的C代码实现:
```c
#include <stdio.h>
#define ROWS 4
#define COLS 4
void findSaddle(int arr[ROWS][COLS]) {
int i, j, k;
int saddleFound = 0;
for (i = 0; i < ROWS; i++) {
int minVal = arr[i][0];
int minCol = 0;
for (j = 1; j < COLS; j++) {
if (arr[i][j] < minVal) {
minVal = arr[i][j];
minCol = j;
}
}
for (k = 0; k < ROWS; k++) {
if (arr[k][minCol] > minVal) {
break;
}
}
if (k == ROWS) {
printf("Saddle point found at (%d, %d) with value %d\n", i, minCol, minVal);
saddleFound = 1;
}
}
if (!saddleFound) {
printf("No saddle points found\n");
}
}
int main() {
int arr[ROWS][COLS] = {
{ 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9, 10, 11, 12 },
{ 13, 14, 15, 16 }
};
findSaddle(arr);
return 0;
}
```
这段代码会在给定的二维数组中查找鞍点,并输出鞍点的位置及值。如果没有找到鞍点,则输出相应提示。
阅读全文