怎么将一串数字里的奇数提取出来组成一个新的数?

怎么将一串数字里的奇数提取出来组成一个新的数?

问题描述:

用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; //仅需要加上一行
}