用c找出一个二维数组中的鞍点
时间: 2023-06-03 15:07:42 浏览: 137
好的,针对您的问题,我可以给您提供一个基本的思路和代码。
首先,我们需要明确什么是鞍点。在一个矩阵中,如果一个数既是该行的最大值,又是该列的最小值,那么它就是这个矩阵的鞍点。
下面是一个用C语言实现的查找鞍点的函数:
```
void findSaddlePoint(int arr[][N], int row, int col) {
int i, j, k, min, max, flag;
for(i = 0; i < row; i++) {
min = arr[i][0];
flag = 1;
for(j = 1; j < col; j++) {
if(arr[i][j] < min) {
min = arr[i][j];
k = j;
}
}
max = arr[0][k];
for(j = 0; j < row; j++) {
if(arr[j][k] > max) {
max = arr[j][k];
}
}
if(max == min) {
printf("Saddle Point: %d, at [%d,%d]\n", min, i, k);
flag = 0;
}
}
if(flag) {
printf("No Saddle Point Found.\n");
}
}
```
这个函数的输入参数包括二维数组 `arr`,以及矩阵的行数 `row` 和列数 `col`。其中,`N` 是一个常量,表示矩阵中每行的元素个数,这个值需要提前定义。
该函数的实现思路是,对于矩阵中每一行,先找到该行的最小值,然后再判断该最小值是否为该列中的最大值。如果是,那么就找到了一个鞍点。
您可以在自己的代码中调用这个函数,来寻找一个二维数组中的鞍点。另外,记得在找到一个鞍点之后,将 `flag` 标志位置为 0,以便在最后输出提示信息时能够判断是否找到了鞍点。
阅读全文