题目:找最长序列
描述:给定一个未排序的整数数组,找出最长连续序列的长度。
输入:第一行输入数组长度n,第二行输入n个未排序的整数,输出一个整数。n<=100
输出:输出最长连续序列的长度
输入样例 1
6
3 8 1 2 7 4
输出样例 1
4
我的代码:
#include <stdio.h>
void swpt(int* a ,int* b)
{
int temp;
temp = *b;
*b = *a;
*a = temp;
}
int main()
{
int n;
scanf("%d",&n);
int a[n];
int i;
for(i = 0;i <= n-1; i++)
{
scanf("%d",&a[i]);
}
for(i = 1;i <= n - 1; i++)
{
int j;
for(j = n-1;j >= i;j--)
{
if(a[j]<=a[j-1]) swpt(&a[j],&a[j-1]) ;
}
};
int r = 0,maxlen = 0;
for(i = 0;i <= n-2; i++)
{
if(a[i+1] - a[i] == 1) r++;
else if(a[i+1] - a[i] == 0) r+=0;
else
{
if(maxlen < r) maxlen = r;
r = 0;
}
};
printf("%d",maxlen);
return 0;
}
测试结果:
输入:
5
1 2 2 3 4
输出
0
请问代码问题出现在哪?