изменилось, так что вы должны позаботиться об этом тоже.

ель:

Я должен создать функцию, которая складывает две фракции.

Я определил новый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;
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос