兄弟来学习 发表于 2020-3-6 12:11:13

输出矩阵中的鞍点,结果多了一个,求解

#include<stdio.h>
int main()
{
   int a,i,j,max,k,c,count=0;
   for(i=0;i<3;i++)
   { for(j=0;j<4;j++)
      scanf("%d",&a);
   }
for(i=0;i<3;i++)
   {
       max=a;
       for(j=0;j<4;j++)
       {
       if(a>max)
          {
            max=a;
            k=j;
          }\\选出一行中的最大值
       }
       for(c=0;c<3;c++)
       {
         if(a>=max)
         {
            count++;
         }
      if(count==3)
      {
            printf("%d",max);
      }\\判断是否为一列中的最小值
       }
   }

}
输入                         我的结果
879011098          110 210
709721065
984512030

就是要努力呀 发表于 2020-3-6 18:12:45

#include<stdio.h>
int main()
{
   int a,i,j,max,k,c,count=0;
   for(i=0;i<3;i++)
   { for(j=0;j<4;j++)
      scanf("%d",&a);
   }
for(i=0;i<3;i++)
   {
       max=a;
       for(j=0;j<4;j++)
       {
       if(a>max)
          {
            max=a;
            k=j;
          }\\选出一行中的最大值
       }
       for(c=0;c<3;c++)
       {
         if(a>=max)
         {
            count++;
         }
      if(count==3)count没有归零 第二次 max = 210的时候 count=3 所以打印出来了 第三次 max=120 因为110<120 所以count++了一次变成4 所以没打印
      {
            printf("%d",max);
      }\\判断是否为一列中的最小值
       }
   }

}

小冰狼 发表于 2020-3-6 20:00:59

#include<stdio.h>
void main()
{
        int a={{1,2,3},{4,5,6},{7,8,9}};
        int i,j,max,k,c,count=0;
   //for(i=0;i<3;i++)
//    { for(j=0;j<4;j++)
    //    scanf("%d",&a);
//    }



for(j=0;j<4;j++)
{
      if(a>max)
         {
            max=a;
            k=j;
          }//选出一行中的最大值
       }
       
   for(c=0;c<3;c++)
   {
      if(a>=max)
       {
          count++;
       }
       if(count==3)
       {
                       printf("%d\n",max);
         
       }//判断是否为一列中的最小值
       }
   
       
}
页: [1]
查看完整版本: 输出矩阵中的鞍点,结果多了一个,求解