小明接到字节跳动的笔试通知,其中有一道算法题目是:有11个整数,其中有5个整数各出现2次,1个整数出现了1次,请找出这个出现1次的整数。测试数据为{32,-1,0,32,100,66,66,-7,100,0,-1}。小明知道要定义一个一维数组,并将这11个整数初始化赋值给这个数组的每一个元素。请你在小明的想法的基础上,编写程序完成这道面试题目的要求。将程序代码复制粘贴到答题区,可以尝试运用位运算知识。
位运算知识提示:
(1)相同为0,不同为1,即1^1=0, 0^0=0, 0^1=1
(2)任何一个数和0按位异或就是其自身。例如:3^0=3;0000 0011 ^ 0000 0000 = 0000 0011
仅供参考,望采纳~
#include<stdio.h>
int main(void)
{
int n[]={32,-1,0,32,100,66,66,-7,100,0,-1};
int count[11]={0};
int i,j;
for(i=0;i<11;i++)
{
for(j=0;j<11;j++)
{
if(j!=i)
{
if((n[i]^n[j])==0)
{
count[i]+=1;
}
}
}
}
for(i=0;i<11;i++)
{
if(count[i]==0)
{
printf("%d\n",n[i]);
}
}
return 0;
}