如果数列由大到小,那不就没有从小到大的数了吗,哪连号的个数不应该是0么。 以下代码AC了,但输入从大到小的数列,就会输出1;```c #include<stdio.h> int main() { long int n,a[10000],i,max=0,s=1; scanf("%ld",&n); for(i=1;i<=n;i++) { scanf("%ld",&a[i]); } for(i=1;i<=n;i++) { if(a[i+1]-a[i]==1) s++; else s=1; if(s>max) max=s; } printf("%ld",max); return 0; }
如果最长连号的数的个数是1,也就是没有连续的连号,实际上连号个数为0。修改后,输入从大倒小或者常数列,会输出0,但是第4点会WA。```c
#include<stdio.h>
int main()
{
long int n,a[10000],i,max=0,s=1;
scanf("%ld",&n);
for(i=1;i<=n;i++)
{
scanf("%ld",&a[i]);
}
for(i=1;i<=n;i++)
{
if(a[i+1]-a[i]==1)
s++;
else
s=1;
if(s>max)
max=s;
}
if(max==1)
max=0;
printf("%ld",max);
return 0;
}
我的理解不是很好,如果犯了什么可笑的错误还请原谅我吧。