用c语言生成代码写一个函数,找出一个二维数组中的鞍点(即该位置上的元素在该行上最大、在该列上最小),如果有鞍点,返回鞍点值,没有返回0.
时间: 2023-11-06 16:01:58 浏览: 85
下面是用 C 语言编写的示例代码:
```c
#include <stdio.h>
int findSaddlePoint(int arr[][3], int row, int col) {
int i, j, k, min, max, flag = 0;
for (i = 0; i < row; i++) {
min = arr[i][0];
for (j = 1; j < col; j++) {
if (arr[i][j] < min) {
min = arr[i][j];
}
}
for (j = 0; j < col; j++) {
if (arr[i][j] == min) {
max = arr[0][j];
for (k = 1; k < row; k++) {
if (arr[k][j] > max) {
max = arr[k][j];
}
}
if (arr[i][j] == max) {
printf("Saddle Point Found: %d\n", arr[i][j]);
flag = 1;
}
}
}
}
if (!flag) {
printf("No Saddle Point Found\n");
return 0;
}
return 1;
}
int main() {
int arr[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
findSaddlePoint(arr, 3, 3);
return 0;
}
```
这个示例代码中,`findSaddlePoint` 函数接受一个二维数组 `arr`、数组的行数 `row` 和列数 `col` 作为参数。它使用两个嵌套的循环来遍历每一行和每一列,找到每行中的最小值和每列中的最大值。如果某个元素既是它所在行的最小值,又是它所在列的最大值,那么它就是一个鞍点。如果找到鞍点,函数会打印出该点的值并返回 1;如果没有找到,则函数会打印出一条消息并返回 0。
在 `main` 函数中,我们创建了一个 3x3 的数组,并将其传递给 `findSaddlePoint` 函数。运行程序,输出如下:
```
Saddle Point Found: 1
No Saddle Point Found
```
这表明,数组中存在一个鞍点(第一行第一列),并且函数成功地找到了它;另外,数组中不存在第二个鞍点,函数也正确地返回了 0。
阅读全文