小鸟游菜花 2022-02-12 10:50 采纳率: 86.5%
浏览 18
已结题

这个代码是正确的,但我想问一下第19行,当不出现连号以后n就已经变为0了啊,n在和max比较的时候n不是应该也为0吗,为什么是15行那个n的值和max在比,还是我想错了

img


#include<stdio.h>
int main()
{
    int a;
    scanf("%d",&a);
    int i,f[a],n=0,max=0;
    for(i=0;i<a;i++)
    {
        scanf("%d",&f[i]);
    }
    for(i=0;i<a;i++)
    {
        if(f[i+1]-f[i]==1)
        {
            n++;
        }
        else
        {
            n=0;
        }
        if(n>max)
        max=n;
    }
    printf("%d",max+1);
    return 0;
}
  • 写回答

3条回答 默认 最新

  • 发飙的恒星 2022-02-12 11:24
    关注

    n是存连续个数的,在第一个if判断中,用第二个去减第二个检验是否连续,连续就++,不连续就赋0。因此即使一次连续后面被赋0了,在打印的时候会再加一次。最后的n和max判断,n和max只要都为0才可能相等,为0时哪个打印都一样的,因为最后都会++。

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

报告相同问题?

问题事件

  • 系统已结题 2月21日
  • 已采纳回答 2月13日
  • 创建了问题 2月12日

悬赏问题

  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵
  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
  • ¥15 Android studio AVD启动不了
  • ¥15 陆空双模式无人机怎么做
  • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
  • ¥15 C#中的编译平台的区别影响
  • ¥15 软件供应链安全是跟可靠性有关还是跟安全性有关?
  • ¥15 电脑蓝屏logfilessrtsrttrail问题