Есть ли оператор, который я могу использовать для прикрепления двух расчетов?
Я делаю домашнее задание, где использую только элементарные операции. Мне нужно закодировать функцию, которая с положительным числом вычисляет всю половину этого числа.
Моя проблема:
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 ничего не делает, я не могу удалить ее, поскольку домашнее задание говорит, что не следует удалять ее из кода, возможно, мне нужно ее использовать.
1 ответ
Решение
Вы можете просто использовать ||
собрать их вместе:
int half(int x, int y)
{
return x == 0 || x == 1 ? y : half(x-1-1, y+1);
}