#define TRUE 1
#define FALSE 2
struct rational{
int numerator;
int denominator;
}
void reduce(struct rational *inrat,struct rational *outrat)
{
int a,b,rem;
if(inrat->numerator>inrat->denominator)
{
a=intrat->numerator;
b=inrat_>denominator;
}
else
{
b=intrat->numerator;
a=intrat->denominator;
}
while(b!=0)
{
rem=a%b;
a=b;
b=rem;
}
outrat->numerator/=a;
outrat->denominator/=a;
}
Хорошо, это код для уменьшения рационального числа. Он основан на алгоритме Евклида.
У меня вопрос, какой смысл использовать указатель на структуру outrat
, если все данные хранятся в переменных через intrat
(в основной функции, конечно).
Почему воспользовались утверждением outrat->numerator/=a; outrat->denominator/=a;
если фактическими значениями манипулируют с помощью указателя intrat
, почему используется outrat
?