题目:一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。 找出这两个数字,编程实现
思路一:暴力求解。每次选取一个元素,再遍历数组,判断是否有与其相同的元素,如果有则跳出循环;每一轮遍历都结束后都可以根据j与size的大小判断出只出现一次的数字
代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int arr[] = { 1, 1, 2, 2, 3, 3, 4, 5 };
int size = sizeof(arr) / sizeof(arr[0]);
int i, j;
//外循环:每次选取一个元素
for ( i = 0; i < size; i++)
{
//内循环:将其他元素与选取的那个元素进行比较
for ( j = 0; j < size; j++)
{
if (i != j&&arr[i] == arr[j])
{
break;
}
}
//来到这里有两种情况:(1)有与之相同的元素(break执行)(2)遍历完毕也没有找到相同元素,这时j==size
if (j==size)
{
printf("%d ", arr[i]);
}
}
system("pause");
return 0;
}