回 帖 发 新 帖 刷新版面

主题:怎么打印鞍点

#include"stdio.h"
main()
{
    int i,j,k,a[3][4],max,maxj,flag;
    for(i=0;i<3;i++)
        for(j=0;j<4;j++)
            scanf("%d",&a[i][j]);

    for(i=0;i<3;i++)
    {  max=a[i][0];
       maxj=0;
       for(j=0;j<4;j++)
           if(a[i][j]>max)
           {max=a[i][j];maxj=j;
       flag=1;}
       for(k=0;k,3;k++)
        if(max>a[k][maxj])
        {flag=0;break;}
        if(flag) 
        {  
            printf("%d",max);
            break;}
    }
    if(!flag) printf("NO");
}
这样写错哪里  能不能帮我该下  顺便把正确的发到我邮箱596821335@qq.com

回复列表 (共4个回复)

沙发

#include<stdio.h>
void main()
{
 int i,j,k,max,min,row,column,panduan;
 int a[3][3]={{1,3,4},
              {2,8,5},
              {7,9,6}};
 for(i=0;i<3;i++)
 {
  max=a[i][0];
  for(j=0;j<3;j++)
  {
   if(a[i][j]>max)
   { max=a[i][j];
    row=i;
    column=j;}
  }
        min=a[row][column];
  for(k=0;k<3;k++)
  {   
   if(a[k][column]<min)
       min=a[k][column];
        }
  if(max==min)
   panduan=1; 
  else
   panduan=0;
     if(panduan==0)
      printf("there is not Andian.\n");
     if(panduan==1)
      printf("Andian is a[%d][%d]=%d\n",row,column,a[row][column]);

 }
}

板凳


我运行了你那个程序  结果是 andian shi 4
                           there is no andian
                           there is no andian

3 楼

#include <stdio.h>
#define N 4
#define M 5                   /* 数组为4行5列 */
int main()
{
  int i,j,k,a[N][M],max,maxj,flag;
  printf("please input matrix:\n");
  for (i=0;i<N;i++)           /* 输入数组 */
     for (j=0;j<M;j++)
      scanf("%d",&a[i][j]);
  for (i=0;i<N;i++)
   {max=a[i][0];               /* 开始时假设a[i][0]最大 */
    maxj=0;                    /* 将列号0赋给maxj保存 */
    for (j=0;j<M;j++)         /* 找出第i行中的最大数 */
      if (a[i][j]>max)
        {max=a[i][j];         /* 将本行的最大数存放在max中 */
         maxj=j;              /* 将最大数所在的列号存放在maxj中 */
        }
    flag=1;                   /* 先假设是鞍点,以flag为1代表 */
    for (k=0;k<N;k++)
      if (max>a[k][maxj])     /* 将最大数和其同列元素相比 */
         {flag=0;             /* 如果max不是同列最小,表示不是鞍点令flag1为0 */
          continue;}
    if(flag)                  /* 如果flag1为1表示是鞍点 */
    {printf("a[%d][%d]=%d\n",i,maxj,max);   /* 输出鞍点的值和所在行列号 */
     break;
    }
  }
  if(!flag)                       /* 如果flag为0表示鞍点不存在 */
    printf("It is not exist!\n");
  return 0;
 }

4 楼

这个是第4版的标准答案

我来回复

您尚未登录,请登录后再回复。点此登录或注册