Написать структуру дробные числа числителя (целое число) и знаменателя >0 - C (СИ)
Формулировка задачи:
Помогите пожалуйста решить. Написать структуру дробные числа числителя (целое число) и знаменателя >0. И сделать все операции с ними +, -,*, /.
Решение задачи: «Написать структуру дробные числа числителя (целое число) и знаменателя >0»
textual
Листинг программы
typedef struct
{
int numerator;
int denominator;
} fraction;
void add_fraction(fraction *result, fraction *a, fraction *b)
{
int m,n;
m=a->numerator*b->denominator + b->numerator*a->denominator;
n=a->denominator*b->denominator;
result->numerator=m;
result->denominator=n;
}
void sub_fraction(fraction *result, fraction *a, fraction *b)
{ fraction b1;
b1.numerator=-b->numerator;
b1.denominator=b->denominator;
add_fraction(result, a, &b1);
}
void mult_fraction(fraction *result, fraction *a, fraction *b)
{
int m,n;
m=a->numerator*b->numerator;
n=a->denominator*b->denominator;
result->numerator=m;
result->denominator=n;
}
void div_fraction(fraction *result, fraction *a, fraction *b)
{ fraction b1;
b1.numerator=b->denominator;
b1.denominator=b->numerator;
mult_fraction(result, a, &b1);
}
Объяснение кода листинга программы
- Структура дробного числа: числитель (целое число) и знаменатель (целое число больше 0).
- В функции
add_fractionпроизводится сложение двух дробей. - В функции
sub_fractionпроизводится вычитание двух дробей. - В функции
mult_fractionпроизводится умножение двух дробей. - В функции
div_fractionпроизводится деление двух дробей. - В функции
sub_fractionсоздается дополнительная дробьb1, которая используется как аргумент для функцииadd_fraction. - В функции
div_fractionсоздается дополнительная дробьb1, которая используется как аргумент для функцииmult_fraction. - Значение переменной
mв функцииadd_fractionравно произведению числителей или числителя и знаменателя, или знаменателя и числителя. - Значение переменной
nв функцииadd_fractionравно произведению знаменателей. - Значение переменной
mв функцииmult_fractionравно произведению числителей. - Значение переменной
nв функцииmult_fractionравно произведению знаменателей. - Значение переменной
mв функцииdiv_fractionравно произведению числителя и знаменателя. - Значение переменной
nв функцииdiv_fractionравно произведению знаменателя и числителя. - Значение переменной
b1в функцииsub_fractionравно исходной дробиb, но со знаком минус перед числителем. - Значение переменной
b1в функцииdiv_fractionравно исходной дробиb, но со знаком деления перед числителем. - Аргумент
aпередается в функциюadd_fractionпо ссылке. - Аргумент
bпередается в функциюadd_fractionпо ссылке. - Аргумент
bпередается в функциюsub_fractionпо ссылке. - Аргумент
bпередается в функциюdiv_fractionпо ссылке. - Аргумент
b1передается в функциюdiv_fractionпо ссылке.