一只角的独角兽 2023-03-09 16:09 采纳率: 75%
浏览 37
已结题

调试了好多遍,有没有帮我看看哪错了。

img

#include <stdio.h>
#include <stdlib.h>
#include<math.h>
#include<string.h>
/*
87  90  110  98
70  97  210  65
99  45  120  30
*/
int main()
{
    int a[3][4];
    int i,j,k,isfind,m=0;//m是判断是否有没有鞍点的
    for(i=0;i<3;i++)
    {
        for(j=0;j<4;j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    //先找每一行对应最大的值
    //因此我们要定义一个变量max
    int max;
    for(i=0;i<3;i++)
    {
        isfind=1;
        max=a[i][0];//一般设有初始值的都是为了让他去比较而不是a[i][0];
       for(j=0;j<4;j++)
       {
           if(max<a[i][j])
           {
               max=a[i][j];
              k=j;
           }
     //找到该数对应的列数,因为j会变,所以要记录这个数
    //此时找到了最大值
           
       }
       //找到对应列数的最小值
       for(j=0;j<3;j++)
       {
           if(a[j][k]<max)
           {
                isfind=0;
               break;
           }
       }
       if(isfind==1)
       {
           m=1;
           printf("%d",a[i][k]);
       }


    }
    if(m==0)
    {
        printf("NO");
    }
}
  • 写回答

4条回答 默认 最新

  • tanjunming2020 2023-03-09 16:27
    关注

    在第27行,你要让k=0,不然这组数据过不了。

    100 101 102 103
    90 80 70 60
    200 300 400 500

    因为如果k没有设初值,则k可能为上一次选到的。如果当前没有a[i][j]比a[i][0]大,则k就是上一次的值,不一定为0。
    所以k要设一个初值

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月17日
  • 已采纳回答 3月9日
  • 修改了问题 3月9日
  • 创建了问题 3月9日

悬赏问题

  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 有偿四位数,节约算法和扫描算法
  • ¥15 VUE项目怎么运行,系统打不开
  • ¥50 pointpillars等目标检测算法怎么融合注意力机制
  • ¥20 Vs code Mac系统 PHP Debug调试环境配置
  • ¥60 大一项目课,微信小程序
  • ¥15 求视频摘要youtube和ovp数据集