gpt4 book ai didi

c - 考虑到函数被调用的次数,您将如何继续操作 C 中函数的返回值?

转载 作者:太空宇宙 更新时间:2023-11-04 02:35:52 25 4
gpt4 key购买 nike

“编写一个函数,第一次调用时返回 100,第二次调用时返回 99,第三次调用时返回 98,等等 - 一旦数字达到零,函数应始终返回 0”。

我完全迷失在这里,因为它可以很容易地通过

int func()

{

int x = 100;

if ( x == 0 )
return 0;
else
return x;

--x;

}

但这显然行不通。有帮助吗?

最佳答案

试试这个:

#include <stdio.h>

int func(void) {
static int x = 100;
return x ? x-- : 0;
}

int main(void) {
int i;
// Until 105 to see that it always returns 0 after 100 calls
for(i = 0; i < 105; ++i)
printf("%d\n", func());
return 0;
}

static关键字说xfunc() 终止后,其值(value)不应消失,所以当func()第二次调用,x将具有与 func() 终止时相同的值.

请注意 static int x = 100;将被执行一次,这意味着 x第二次调用 func() 时不会收到值 100 .


如果混淆return x ? x-- : 0;你,就相当于这样:

if(x == 0)
return 0;
return x--;

关于c - 考虑到函数被调用的次数,您将如何继续操作 C 中函数的返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37615936/

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