• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
大佬和我做朋友吧
博客园    首页    新随笔    联系   管理    订阅  订阅
判断数组中是否存在鞍点,在该行最大,在该列最小

1 2 6 4
5 6 7 8
9 10 11 12
6是鞍点
1) 扫描每一行,找出最大值
2) 看这个值是不是 所在列的最小值
3) 如果是,输出此数

 

#include <stdio.h>
int main()
{
    int a[3][4] = {{1,2,6,4}, {5,6,7,8}, {9,10,11,12}};
    int i, j;
    for(i = 0; i < 3; i++)
    {    
        int max = 0, min = 100, line;
        for(j = 0; j < 4; j++)    //找到某行最大值
        {
            if(a[i][j] > max)
            {
                max = a[i][j];
                line = j;    //line 最大值所在列
            }    
        }
        for(j = 0; j < 3; j++)    //找到所在列最小值
        {
            if(a[j][line] < min)
            {
                min = a[j][line];
            }
        }
        if(max == min)    //最大值等于最小值,说明是鞍点
            printf("%d %d :%d\n", i + 1, line + 1, max);
    }
}

 

posted on 2022-01-19 15:43  想和大佬做朋友  阅读(89)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3