话不多说,给一个数组,找出偶数中的奇数或者奇数中的偶数
我的代码
#include <stdlib.h>
int find_outlier(const int *values, size_t count)
{
int i=0,odd=0,even=0,cnt=0;
for(i=0;i<3;i++)
{
if(values[i]%2==0) even++;
else odd++;
}
if(even>=2)
{
for(i=0;i<count;i++)
{
if(values[i]%2!=0)
{
cnt=values[i];
break;
}
}
}
else
{
for(i=0;i<count;i++)
{
if(values[i]%2==0)
{
cnt=values[i];
break;
}
}
}
return cnt;
}
大佬的代码
#include <stdlib.h>
int find_outlier(const int *values, size_t count)
{
int i = 0, j, rt = 0;
while (i < 3) {rt += (values[i++] & 1);}
if (rt >= 2) rt = 0; else rt = 1;
i = -1; j = count;
while (++i < --j) {
if ((values[i] & 1) == rt) return values[i];
if ((values[j] & 1) == rt) return values[j];
}
return values[i];
}