初学不知道怎么改,网上查了也没有想出来,最简单的程序不知道那里出错
你另一个 cpp文件里已经定义了main 函数, 项目里只允许存在一个主函数,
要么你把 另一个 cpp文件里的main函数注释掉吧,这里就可以运行了
#include<stdio.h>
#include<windows.h>
int find_num(int a[], int len)
{
int i = 0;
int ret = 0;//记录所有值异或的结果
int pos = 0;//记录ret二进制为第一个为1的位置
int first = 0;//将一组值异或存在first,得到1个没有相同数字的值
int second = 0;//将另一组值异或存在second,得到另1个没有相同数字的值
//先将所有数异或
for (i; i < len; i++)
{
ret ^= a[i];
}
//找到ret二进制数第一个为1的数
for (i = 0; i < 32; i++)
{
if (1 == ((ret >> i) & 1))
{
pos = i;
break;
}
}
//分组异或
for (i = 0; i < len; i++)
{
if (1 == ((a[i] >> pos) & 1))
{
first ^= a[i];
}
else
{
second ^= a[i];
}
}
printf("first = %d\nsecond = %d\n", first, second);
}
int main()
{
int arr[8] = { 1, 2, 3, 4, 3, 2, 1, 5 };
int len = sizeof(arr) / sizeof(arr[0]);
find_num(arr, len);
system("pause");
return 0;
}