Есть ли оператор, который я могу использовать, чтобы прикрепить 2 вычисления? - PullRequest
0 голосов
/ 30 сентября 2019

Я делаю домашнюю работу, где я использую только элементарные операции. Мне нужно кодировать функцию, которая дает положительное число, вычисляет всю половину этого числа.

Моя проблема в:

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.

Примечание: Сумма функции хотяничего не делая, я не могу удалить, так как домашняя работа говорит не удалять из кода, возможно, мне нужно ее использовать.

1 Ответ

0 голосов
/ 30 сентября 2019

Вы можете просто использовать ||, чтобы сложить их вместе:

int half(int x, int y)
{
    return x == 0 || x == 1 ? y : half(x-1-1, y+1);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...