题目:
代码
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int arr[1000] = { 0 };
int i = n;
for (i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
int b = 1;
int c = 0;
//核心
for (i = 0; i <= n; i++)
{
if (arr[i + 1] - arr[i] == 1)
{
b++;
}
if (arr[i + 1] - arr[i] != 1)
{
if (c < b)
{
c = b;
}
b = 1;
}
}
printf("%d", c);
return 0;
}
解析
1.先创建数组,在进行for循环依次输入数据
2.注意本题是需要连续自然数,并且求出最长序列的连续自然数个数。
那么先举一个极端的例子:数据均不连续。列:2 4 6 8 10;此时应该输出的数字为1;
由此可见:我们需要输出的变量一开始定义的时候就要赋值为1.
3.只需要一个for循环使数据进行比较
如果连号 则b++
如果不连号 记得比较后把b存到c里面,并且把b初始化为1