C语言进阶习题【3】(5 枚举)——找单身狗2
1. 题目描述
一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。
编写一个函数找出这两个只出现一次的数字。
例如:
有数组的元素是:1,2,3,4,5,1,2,3,4,6
只有5和6只出现1次,要找出5和6.
2 . 思路
遍历数组,两两相比较。
设置一个标记flag = 1,判断如果两个值内容相等,flag = 0,且跳出本次循环,进行下一次,遍历全部之后,flag =1 的就是值只出现一次的。
注意要跳过自己和自己的比较
3. 代码实现
int main()
{
int a[] = { 1,2,3,4,5,1,2,3,4,6 };//这里数组就应该找出5 和6
int size = sizeof(a) / sizeof(a[0]);
int i = 0;
for (i = 0; i < 10; i++)
{
int flag = 1;
int j = 0;
for (j = 0; j < 10; j++)
{
if (i == j)//跳过自己和自己的元素比较
{
continue;
}
if (a[j] == a[i])
{
flag=0;
break;
}
}
if (flag == 1)
{
printf("%d ", a[i]);
}
}
return 0;
}