Я делаю домашнюю работу, где я использую только элементарные операции. Мне нужно кодировать функцию, которая дает положительное число, вычисляет всю половину этого числа.
Моя проблема в:
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.
Примечание: Сумма функции хотяничего не делая, я не могу удалить, так как домашняя работа говорит не удалять из кода, возможно, мне нужно ее использовать.