Описать функцию, которая выводит сокращенную дробь - C (СИ)
Формулировка задачи:
6. ф-я принимает два парметра числитель и знаменатель. ф-я выводит сокращенную дробь
Решение задачи: «Описать функцию, которая выводит сокращенную дробь»
textual
Листинг программы
#include <stdio.h>
#define llong unsigned long
void sokr_drob( llong c, llong d)
{
llong a = c,
b = d;
while (a && b)
{
if (a >= b)
a %= b;
else
b %= a;
}
a |= b;
printf("%d\\%d\n",c/a,d/a );
}
int main(int argc, char *argv[])
{
llong a=123456, b=2066563456;
sokr_drob(a, b);
return 0;
}
Объяснение кода листинга программы
- Включаем файл
для работы с выводом в консоль - Определяем тип данных llong как unsigned long, чтобы представить дробные числа как целые числа с знаком
- Создаем функцию sokr_drob, которая принимает два аргумента типа llong: c и d
- Внутри функции объявляем две переменные a и b, которые будут использоваться в цикле
- Входим в цикл while, который будет выполняться до тех пор, пока a и b не станут равными нулю
- Проверяем, если a больше или равно b, то выполняем операцию деления a на b и присваиваем результат переменной a
- Если a меньше b, то выполняем операцию деления b на a и присваиваем результат переменной b
- После выхода из цикла while, выполняем операцию побитового ИЛИ между a и b и присваиваем результат переменной a
- Выводим сокращенную дробь c/a и d/a с помощью функции printf
- В функции main создаем две переменные типа llong: a и b, и присваиваем им значения 123456 и 2066563456 соответственно
- Вызываем функцию sokr_drob, передавая ей значения a и b в качестве аргументов
- Возвращаем 0 из функции main, чтобы указать, что программа успешно завершилась