我们这题的思路就是先排序,然后对相邻的两个元素做比较,如果不相等就把前面的记录下来,然后++往后
cpp
void bsort(int* arr, int sz)
{
int i = 0;
int j = 0;
for (i = 0; i < sz - 1; i++)
{
for (j = 0; j < sz - 1 - i; j++)
{
if (arr[j] > arr[j + 1])
{
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}
void findog(int* arr, int sz, int* num)
{
bsort(arr, sz);//先排序
int i = 0;
int j = 0;
for (i = 0; i < sz; )
{
if (arr[i] == arr[i + 1])//如果相等就+=2,跳过两个元素
{
i += 2;
}
else
{
num[j] = arr[i];//不相等就记录下来然后+1跟下一个作比较
i++;
j++;
}
}
}
int main()
{
int arr[] = { 1,2,3,4,5,1,2,3,4,6 };
int num[2] = { 0 };
int sz = sizeof(arr) / sizeof(arr[0]);
findog(arr, sz, num);
printf("%d %d", num[0], num[1]);
return 0;
}