#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;
}
这个代码是正确的,但我想问一下第19行,当不出现连号以后n就已经变为0了啊,n在和max比较的时候n不是应该也为0吗,为什么是15行那个n的值和max在比,还是我想错了
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 发飙的恒星 2022-02-12 11:24关注
n是存连续个数的,在第一个if判断中,用第二个去减第二个检验是否连续,连续就++,不连续就赋0。因此即使一次连续后面被赋0了,在打印的时候会再加一次。最后的n和max判断,n和max只要都为0才可能相等,为0时哪个打印都一样的,因为最后都会++。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
- ¥20 wpf datagrid单元闪烁效果失灵
- ¥15 券商软件上市公司信息获取问题
- ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
- ¥15 Android studio AVD启动不了
- ¥15 陆空双模式无人机怎么做
- ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
- ¥15 C#中的编译平台的区别影响
- ¥15 软件供应链安全是跟可靠性有关还是跟安全性有关?
- ¥15 电脑蓝屏logfilessrtsrttrail问题