Я выполняю упражнение из книги под названием «Программирование на языке C», пытаюсь решить упражнение 7.9, и поэтому мой код работает отлично, пока я не добавлю условное выражение для функции, принимающей только переменные, превышающие 0
Я пытался изменить его многими способами, но, похоже, ничего не работает
// Program to find the least common multiple
#include <stdio.h>
int main(void)
{
int lcm(int u, int v);
printf("the least common multiple of 15 and 30 is: %i\n", lcm(15, 30));
return 0;
}
// Least common multiple
int lcm(int u, int v)
{
int gcd(int u, int v);
int result;
if (v || u <= 0)
{
printf("Error the values of u and v must be greater than 0");
return 0;
}
result = (u * v) / gcd(u, v);
return result;
}
// Greatest common divisor function
int gcd(int u, int v)
{
int temp;
while (v != 0)
{
temp = u % v;
u = v;
v = temp;
}
return u;
}
Я ожидаю, что вывод lcm (15, 30) будет 30, но я продолжаю получать сообщение об ошибке, если оператор delete de if внутри функции lcm работает нормально, но я хочу, чтобы программа возвращала ошибку, если для пример я использую (0, 30)