C语言写一个函数,找出一个二维数组中的鞍点(即该位置上的元素在该行上最大、在该列上最小),如果有鞍点,返回鞍点值,没有返回0。
时间: 2023-11-06 16:13:30 浏览: 53
用C语言求二维数组鞍点
下面是实现该函数的C语言代码:
```c
int findSaddlePoint(int arr[][N], int rows) {
int i, j, k, min, max, flag;
for (i = 0; i < rows; i++) {
min = arr[i][0];
flag = 1;
for (j = 1; j < N; j++) {
if (arr[i][j] < min) {
min = arr[i][j];
flag = j + 1;
}
}
max = arr[i][flag - 1];
for (k = 0; k < rows; k++) {
if (arr[k][flag - 1] > max) {
flag = 0;
break;
}
}
if (flag) {
return max;
}
}
return 0;
}
```
其中,`arr`表示二维数组,`rows`表示行数,`N`表示列数(在代码中假设列数为常量)。函数遍历每一行,找到该行的最小值及其所在的列,并在该列上寻找最大值。如果最大值正好在该行上的最小值所在的列上,那么就找到了鞍点,返回该值。如果遍历完所有行都没有找到鞍点,返回0。
阅读全文