4.一个数组里,除了三个数是唯一出现的,其余的都出现偶数个,找出这三个数中的任一个。比如数组元素为【1, 2,4,5,6,4,2】,只有1,5,6这三个数字是唯一出现的,我们只需要输出1,5,6中的一个就行。
#include<stdio.h>
int main(void)
{
int a[7] = {1, 2,4,5,6,4,2};
int i, j,w;
for(i = 0; i <6; i++)//先进行冒泡排序
for(j = 0; j < 6 - i; j++)
{
if(a[j] > a[j+1])
{
w = a[j];
a[j] = a[j+1];
a[j+1] = w;
}
}
for(i = 0; i < 7; i++)//冒泡之后,如果有重复的数字肯定排在了一起,然后再进行相邻之间比较,如果有相邻的不相等,则为需要的数
{
if(i == 0)
{
if(a[i] != a[i+1])
printf("%d\n",a[i]);
}
else
if(a[i] != a[i - 1] && a[i] != a[i + 1])
printf("%d\n",a[i]);
}
return 0;
}