怎么将一串数字里的奇数提取出来组成一个新的数?
问题描述:
用C语言写一个函数,要怎么用指针把奇数提取出来,然后再用这些奇数组成一串新的数 如果全是偶数,如24224时输出值为-1?
答
规范的写法是:
void foo(int n, int * result)
{
*result = 0;
int base = 1;
int oc = 0;
while (n != 0)
{
if (n % 2 == 1)
{
oc = 1;
*result += (n % 10) * base;
base *= 10;
}
n /= 10;
}
if (!oc) *result = -1;
}
这个办法奇数、偶数都适用
但是因为你是奇数,所以,如果结果是0,就可以判定没有出现偶数了。
void foo(int n, int * result)
{
*result = 0;
int base = 1;
while (n != 0)
{
if (n % 2 == 1)
{
*result += (n % 10) * base;
base *= 10;
}
n /= 10;
}
if (*result == 0) *result = -1; //仅需要加上一行
}