
#include <stdio.h>
#include <assert.h>
void find_dif_data(int *arr,int len)
{
int i;
int val=arr[0];
int flag=1;
int data1=0;
int data2=0;
assert(arr);
assert(len>=2);
for(i=0;i<len;i++)
{
val^=arr[i];
}
for(i=0;i<32;i++)
{
if(val&(flag<<i))
{
flag=flag<<i;
}
}
for(i=0;i<len;i++)
{
if(arr[i] & flag)
{
data1^=arr[i];
}
else
{
data2^=arr[i];
}
}
printf("dif_data: %d , %d\n",data1,data2);
}
int main()
{
int arr[]={7,7,5,5,8,4,2,2,4,1};
int len = sizeof(arr)/sizeof(arr[0]);
find_dif_data(arr,len);
return 0;
}