#include<iostream>
using namespace std;
bool ReaptNum(int a[],int n,int *x)
{
if(a==NULL || n<=0)
return false;
for(int i=0;i<n;i++)
{
if(a[i]<0||a[i]>=n)
return false;
}
for(int i=0;i<n;i++)
{
while(a[i]!=i)
{
if(a[i]==a[a[i]])
{
*x = a[i];
return true;
}
//交换a[i]与a[a[i]]
int temp = a[i];
a[i] = a[temp];
a[temp]=temp;
}
}
return false;
}
主函数测试:
void main()
{
int x;
int *a = NULL;
int N = sizeof(a)/sizeof(a[0]);
bool b=ReaptNum(a,N,&x);
if(b)
cout<<"重复数字为: "<<x<<endl;
else
cout<<"没有重复数字!"<<endl;
}