вместо
if(x<y)r=x,x=y,y=r;
вам нужно будет сделать:
if(x < y){
r = x;
x = y;
y = r;
}
Также вам нужно будет поместить условие во второй оператор цикла for
. Вместо:
for(;;a>0||b>0)
{
...
}
вы могли бы сделать while(a > 0 && b > 0)
.
В зависимости от вашего знакомства вы можете использовать рекурсию, например:
int hcf(int a, int b)
{
if (b == 0)
return a;
else
return hcf(b, a%b);
}
Также обратите внимание, что ваша функция hcf
не имеет оператора возврата в блоке else
. Так что вам придется использовать условный возврат:
if (a == 0) return b;
else return a;
в конце hcf
функция