递归函数不适用于指针

时间:2019-02-28 03:11:58

标签: c

此函数旨在返回数字num中的零个数。函数rCountZeros2()将结果传递给 指针参数结果。 `

void rCountZeros2(int num, int *result)
{
    if (num==0)
        return;
    else
    {
        if (num%10==0){
            (*result)++;
            }
        rCountZeros2(num/10, result);

    }
}

`

1 个答案:

答案 0 :(得分:2)

看看您何时调用rCountZeros2(),我的猜测是变量结果中的值不为零。它可能是一些垃圾值或先前计算中的其他值。但是,您提供的详细信息很难提供确切答案。

请尝试以下独立程序,我使用您的代码得到了正确答案

void rCountZeros2(int num, int *result)
{
    if (num==0)
        return;
    else
    {
        if (num%10==0){
            (*result)++;
            }
        rCountZeros2(num/10, result);

    }
}
int main()
{
    int result = 0;
    int num=12300000;
    rCountZeros2(num, &result);
    printf("number of zeros in %d = %d",num ,result);
}