判断一个数组中的数值是否连续相邻

来源:互联网 发布:教学软件介绍 编辑:程序博客网 时间:2024/05/16 06:39

一个整数数列,元素在 0--65535 中任意取值,相同的数字不会重复出现,0是例外,可以反复出现。

#include<iostream>
using namespace std;

//判断一个正数数组中数值是否连续(不存在数值相等的情况)
bool IsContinue(int *a,int n)
{
int max=-1,min=-1;
int count=0;                        //用来统计数字 0 的个数
for(int i=0;i<n;i++)
{
if(a[i]!=0)
{
if(max<a[i]||max==-1)
max=a[i];
if(min>a[i]||min==-1)
min=a[i];
}
else
count++;
}
int result=max-min;
if(result+1==n-count)
return true;
else 
return false;
}

int main()
{
int a[]={1,2,3,4,5,6,7,0,8,9};
int length_a=sizeof(a)/sizeof(a[0]);
if(IsContinue(a,length_a))
cout<<"该数组为连续相邻的数组!!"<<endl;
else
cout<<"该数组为非连续相邻的数组!!"<<endl;
system("pause");
return 0;
}

输出结果:


0 0
原创粉丝点击