|
发表于 2024-11-6 15:58:03
|
显示全部楼层
代码如下:
- #include <stdio.h>
- int main() {
-
- int found = 0; // 标记是否找到鞍点
- for (int i = 0; i < rows; i++) {
- for (int j = 0; j < cols; j++) {
- int is_max_in_row = 1;
- int is_min_in_col = 1;
- // 检查是否是该行的最大值
- for (int k = 0; k < cols; k++) {
- if (arr[i][k] > arr[i][j]) {
- is_max_in_row = 0;
- break;
- }
- }
- // 检查是否是该列的最小值
- for (int k = 0; k < rows; k++) {
- if (arr[k][j] < arr[i][j]) {
- is_min_in_col = 0;
- break;
- }
- }
- // 如果同时满足行最大和列最小,则找到鞍点
- if (is_max_in_row && is_min_in_col) {
- printf("鞍点位于第 %d 行,第 %d 列,值为 %d\n", i + 1, j + 1, arr[i][j]);
- found = 1;
- }
- }
- }
- if (!found) {
- printf("该二维数组没有鞍点。\n");
- }
- return 0;
- }
复制代码 |
|