-6ren">
gpt4 book ai didi

c - 关于 C 程序输出的说明

转载 作者:太空宇宙 更新时间:2023-11-04 01:19:27 24 4
gpt4 key购买 nike

void count(int n) 
{
static int d=1;
printf("%d", n);
printf("%d", d);
d++;
if(n>1)
count(n-1);
printf("%d", d);
}

void main()
{
count(3);
}

我计算的输出是 3 1 2 2 1 3 4

书本给出的输出 3 1 2 2 1 3 4 4 4

我知道为什么我的答案不同。

在书中的解决方案中,他们总是在“if”循环中执行 printf 语句。但是正如我在我的书中研究的那样,如果括号不存在,for 和 while 循环取决于下一个语句。

在 if 语句 true count 被调用之后,printf 没有被执行。但是为什么他们每次都执行它。

最佳答案

如果你没有给你的ifforwhile 语句加上括号,它们只会执行下一行。更改后:

if(n>1)
count(n-1);
printf("%d", d);

收件人:

if(n>1){
count(n-1);
printf("%d", d);
}

您的输出将变得更接近您的预期:

gonczor@wiktor-papu:~/tmp$ gcc main.c -o main
gonczor@wiktor-papu:~/tmp$ ./main 31221344

关于c - 关于 C 程序输出的说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47771335/

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