c语言二维数组鞍点是a[0][4]不知道哪里错了 - 爱问答

(爱问答)

c语言二维数组鞍点是a[0][4]不知道哪里错了

#include<stdio.h>
int main()
{
 
  int a[4][5],max[4][5]={0},min[4][5]={0},i,j,c,x,n;
  c=0;
  printf("please input matrix: ");
  for(i=0;i<4;i++)
     for(j=0;j<5;j++)
       scanf("%d",&a[i][j]);
  for(i=0;i<4;i++)
  {x=a[i][0];
    for(j=0;j<5;j++)
      {if(x<a[i][j])max[i][j]=a[i][j];
      }
  }
  for(j=0;j<5;j++)
  {n=a[0][j];
    for(i=0;i<4;i++)
      {if(n>a[i][j])min[i][j]=a[i][j];
      }
  }
  for(i=0;i<4;i++)
     for(j=0;j<5;j++)
       if(min[i][j]!=0 && max[i][j]!=0)printf("a[%d][%d]",i,j),c=1;
   if(c==0)printf("nothing");
   return 0;
}

对你的程序作了简化和修改,去除了数组max[4][5]和min[4][5],增加了循环变量k,能够找出鞍点了:

c语言二维数组鞍点是a[0][4]不知道哪里错了

完整的程序如下:

#include<stdio.h>

int main() 

{
 

 int a[4][5],i,j,k,c,x,xj,n;
 c=0; 

  printf("please input matrix: "); 

  for(i=0;i<4;i++) 

      for(j=0;j<5;j++)
 

       scanf("%d",&a[i][j]);
 

 for(i=0;i<4;i++)
  

  {     

   x=a[i][0];
   

    xj = 0;    

    for(j=0;j<5;j++)
     

    {
      

      if(x<a[i][j])
       

       {
        

        x=a[i][j];
        

        xj=j;
      

        }
    

      }
 

   c=1; 

    for(k=0;k<4;k++)
 

    {
 

      if (x>a[k][xj]) 

          c= 0;
    

       continue; 

      } 

    if (c)
  

     {
    

     printf("Saddle point exists a[%d][%d]=%d",i,xj,x);
 

       break;
  

     }
  

   } 

     if (!c)
  

       printf("nothing");
  

        return 0; 

}


相关标签:c语言

下一篇:unitygame窗口display2怎么啥也没有

上一篇:C++中怎么自定义函数?

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?