0

我正在做一些作业,我只使用基本操作。我需要编写一个给定正数的函数,计算该数字的整个一半。

我的问题是:

int half(int x, int y)
{
    return x == 0 ? y : half(x-1-1, y+1) , x == 1 ? y : half(x-1-1, y+1);
}

我不知道是否存在任何运算符或连接这些计算的东西。在该行代码上,我尝试使用(,)。

我尝试使用 ( | ) 和 ( & ) 替换 ( , )。但我有很多错误。


#include <stdio.h>

int sum(int x, int y)
{
    return y == 0 ? x : sum(x+1, y-1);
}

int half(int x, int y)
{
    return x == 0 ? y : half(x-1-1, y+1) , x == 1 ? y : half(x-1-1, y+1);
}

int main(void)
{
    int x;
    int y=0;
    scanf("%d", &x);
    int z = half(x, y);
    printf("%d\n", z);
    return 0;
} 

在这段代码中,我希望 6/2 的输出为 3,而 5/2 的输出为 2。

注意:函数 sum 虽然没有做任何事情,但我无法删除,因为作业说不要从代码中删除,也许我需要使用它。

4

1 回答 1

0

你可以||把这些放在一起:

int half(int x, int y)
{
    return x == 0 || x == 1 ? y : half(x-1-1, y+1);
}
于 2019-09-29T22:36:05.233 回答