¿Cómo obtengo una función para modificar alguno de los parámetros?
Mi objetivo:
Tengo que crear una función que sume dos fracciones.
He definido un nuevostruct
(typedef) llamadofraction
.
La función no puede tener un tipo de retornofraction
, tiene que servoid
, por lo tanto, tiene que modificar uno de los parámetros ingresados, ¿cómo puedo lograr esto? ¿Punteros tal vez? ¿Cómo modificarías mi código para lograrlo?
Este es mi código:
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;
}
}