gpt4 book ai didi

c - 将数字加倍

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

我必须编写一个程序来计算数字的 double 。例如,如果我在 cmd 中插入 2,程序应返回 4。我已经获得了一个包含 sum 函数的入门程序,我必须完成它。

我尝试了很多事情,比如清理所有y并插入两次而不是求和,但就像我说的我是个菜鸟。

这是没有任何更改的程序:

// Sum, recursive, using only elementary operations
#include <stdio.h>
int sum(int x, int y)
{
return y == 0 ? x : sum(x+1, y-1);
}
int main(void)
{
int x;
int y;
scanf("%d%d", &x, &y);
int z = sum(x, y);
printf("%d\n", z);
return 0;
}

最佳答案

嗯,在您的描述中,您说您需要一个输入。但是,您的程序读取两个输入。

也许这就是您所需要的:

#include <stdio.h>
int sum(int x, int y)
{
return y == 0 ? x : sum(x+1, y-1);
}
int main(void)
{
int x;
if (scanf("%d", &x) != 1) // Only 1 input
{
// Input error
return -1;
}
int z = sum(x, x); // Use x for both arguments
printf("%d\n", z);
return 0;
}

这是可行的,因为 sum 函数在递归调用中递增一个参数并递减另一个参数,并继续执行此操作,直到其中一个参数达到零。这样最终的结果就是2 * x

假设输入是 3。那么您将进行以下调用:

sum(3, 3)
sum(4, 2)
sum(5, 1)
sum(6, 0) // Which will end the recursion and return 6 all the way up

关于c - 将数字加倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58305170/

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