Stefan_Lz 2021-07-20 17:57 采纳率: 100%
浏览 217
已采纳

二维数组矩阵求鞍点,c++

一个矩阵的鞍点是指某元素在该行上最大,该列上最小,现在请你找出矩阵的鞍点,也可能没有鞍点,如果没有鞍点,输出NO。
输入格式
第一行一个正整数n,表示矩阵的长宽为n;
接下来有n行,每行n个正整数。
输出格式
如果没有鞍点则显示NO,有则输出每个鞍点的坐标和值,一个鞍点占一行。
数据范围
1≦n≦10;
请问用c++该怎么写。

  • 写回答

1条回答 默认 最新

  • CSDN专家-link 2021-07-20 18:04
    关注
    
    int main()
    {
      bool flag;                               //声明一个布尔变量;
       int a[100][100];
       int n,m;              
      int i,j;
      int k,max,maxj;                         //maxj为该行最大值的列标
       cout<<"请输入一个矩阵大小:";
       cin>>n>>m;
      cout<<"请输入一个矩阵数据:";
      for(i=0; i<n; i++)
      {
        for(j=0; j<m; j++)
        {
          cin>>a[i][j];
        }
      }
      
      for(i=0; i<n; i++)                       //求出该行的最大值的列下标;
      {
        k=a[i][0];
        max=0;
        for(j=0; j<m; j++)
        {
          if(a[i][j]>k)
          {
            max=a[i][j];
            maxj=j;  
          }
        }
         flag=true;                           //默认flag为真
         for(k=0; k<n; k++)                   //判断该行是否是其所在列的最小值;
         { 
            if(max>a[k][maxj])
            {
              flag=false;                    //如果不是最小,继续下一行(i=1)的内循环
            }
         }
    
       if(flag)                              //如果是最小,则输出
        {
          cout<<"a["<<i<<"]["<<maxj<<"]="<<max;
          cout<<endl;
          break;
        }
      }
      if(!flag)
      {
        cout<<"这个数不存在!";
      }
      return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 7月20日
  • 创建了问题 7月20日

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分