gpt4 book ai didi

c - 下面程序的输出应该是什么?

转载 作者:行者123 更新时间:2023-11-30 19:09:11 25 4
gpt4 key购买 nike

void foo(int n, int sum)
{

int k = 0, j = 0;

if (n == 0) return;

k = n % 10;

j = n / 10;

sum = sum + k;

foo (j, sum);

printf ("%d,", k);

}

int main ()

{

int a = 2048, sum = 0;

foo (a, sum);

printf ("%d\n", sum);

getchar();

}

对我来说这应该是 4,0,2,8,0但是,当我执行它时,它给了我 2,0,4,8,0

最佳答案

就代码而言,foo 的参数 sum 并不真正相关,因为它是按值传递的,因此主函数中的最后一个语句 printf ( "%d\n", sum) 将打印 0,无论 foo 内部发生什么。这是您在程序生成的输出中看到的最后一个 0

现在,函数 foo 本身接受参数 n,执行整数除以 10,并递归调用自身,直到 n 为零。这实际上意味着它将打印输入数字的十进制数字,这就是您在输出中看到的...

关于c - 下面程序的输出应该是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43603779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com