社区讨论

关于连数

P1420最长连号参与者 3已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@lo7udbr7
此快照首次捕获于
2023/10/27 07:54
2 年前
此快照最后确认于
2023/10/27 07:54
2 年前
查看原帖
如果数列由大到小,那不就没有从小到大的数了吗,哪连号的个数不应该是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; }
CPP
如果最长连号的数的个数是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;
}
我的理解不是很好,如果犯了什么可笑的错误还请原谅我吧。

回复

3 条回复,欢迎继续交流。

正在加载回复...