#include <stdio.h>
typedef struct
{
int numerator;
int denominator;
}RATIONAL;
void reduce(RATIONAL *r1,RATIONAL *r2)
{
int a,b,rem;
if(r1->numerator > r1->denominator)
{
b=r1->denominator;
a=r1->numerator;
}
else{
a=r1->denominator;
b=r1->numerator;
}
while(b!=0)
{
rem=a%b;
a=b;
b=rem;
}
r2->numerator/=a;
r2->denominator/=a;
}
int main()
{
RATIONAL r1={24,12};
RATIONAL red;
reduce(&r1,&red);
printf("%i/%i",red.numerator,red.denominator);
}
Я получаю расплывчатый ответ, совсем не соответствующий желаемому результату (для справочного вывода = 350066/4).Я не понимаю, почему это происходит.Подскажите пожалуйста, что не так в этом коде.Спасибо!