改了一下午了,就是不知道问题在哪儿。。求助

P1567 统计天数

没错,我又来了
by fresh_boy @ 2020-03-06 23:05:54


@[mima5478963210a](/user/218150) 首先我觉得你有一个问题,就是你最后一个nd输入之后就结束了,这个判定不到
by fresh_boy @ 2020-03-06 23:10:30


@[mima5478963210a](/user/218150) 好了,你的问题是让d=1的条件,你只有d<dmax的时候才让d=1,但实际上,只要st>=nd就应该让d=1,否则会造成d被继续累加。再者你要把for中的N-1改成N,不然最后一个数据判断不到
by fresh_boy @ 2020-03-06 23:15:56


@[mima5478963210a](/user/218150) 正确的应该是 ```cpp #include<bits/stdc++.h> using namespace std; int main(){ int st,nd,d=1,N,dmax=1; cin>>N>>st>>nd; for(int i=1;i<N;i++) { if(st<nd) { d++; } if(st>=nd) d=1; else if(dmax<=d) dmax=d; st=nd; cin>>nd; } cout<<dmax<<endl; return 0; } ```
by fresh_boy @ 2020-03-06 23:16:16


@[唱歌的向日葵](/user/225100) 卧槽,果然是大神,几分钟就看出了问题,谢谢大佬!
by ForeverCydia @ 2020-03-07 10:23:59


@[唱歌的向日葵](/user/225100) 不过那里确实是i<N-1,因为N个数据,开头已经初始化了一个,结尾那个是nd不用算,所以st在循环中只有N-2个
by ForeverCydia @ 2020-03-07 10:29:29


@[mima5478963210a](/user/218150) 一样的无所谓
by fresh_boy @ 2020-03-07 11:20:21


@[唱歌的向日葵](/user/225100) 反正不输入就直接停止
by fresh_boy @ 2020-03-07 11:20:34


|