изменилось, так что вы должны позаботиться об этом тоже.
ель:
Я должен создать функцию, которая складывает две фракции.
Я определил новыйstruct
(typedef) вызываетсяfraction
.
Функция не может иметь тип возвратаfraction
, должно бытьvoid
поэтому он должен изменить один из введенных параметров, как мне этого добиться? Указатели может быть? Как бы вы изменили мой код для его достижения?
Это мой код:
typedef struct{
char sign;
int num;
int den;
} fraction;
void sum(fraction, fraction, fraction);
int main(void) {
fraction op1, op2, solution;
sum(op1, op2, solution);
return 0;
}
void sum(fraction f1, fraction f2, fraction sol){
if (f1.sign == '-') {
f1.num = f1.num * -1;
}
if (f2.sign == '-') {
f2.num = f2.num * -1;
}
sol.num = f1.num*f1.den + f2.num*f1.den;
sol.den = f1.den * f2.den;
sol.sign = '+';
if (sol.num < 0) {
sol.sign = '-';
sol.num = sol.num * -1;
}
}