Como obtenho uma função para modificar qualquer um dos parâmetros?
Meu objetivo:
Eu tenho que criar uma função que adiciona duas frações.
Eu defini um novostruct
(typedef) chamadofraction
.
A função não pode ter um tipo de retornofraction
, tem que servoid
, portanto, ele precisa modificar um dos parâmetros inseridos, como posso conseguir isso? Ponteiros, talvez? Como você modificaria meu código para alcançá-lo?
Este é o meu 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;
}
}