Member 12970019 Ответов: 4

Как вывести десятичное число как отношение двух целых чисел?


Пусть, a = 5;
b = 2;
c = a / b

Таким образом, значение c будет равно 2,5. но я хочу, чтобы оно было выведено как 5/2. Как мне это сделать?

Что я уже пробовал:

Я хочу вывести десятичное число как отношение двух целых чисел.

4 Ответов

Рейтинг:
2

OriginalGriff

Гугл - ваш друг: будьте добры и часто навещайте его. Он может ответить на вопросы гораздо быстрее, чем разместить их здесь...

Очень быстрый поиск дал более 15 000 000 просмотров: float to fraction c - поиск в Google[^]
Это интересное решение: алгоритм-как преобразовать поплавки в читаемые человеком дроби? - переполнение стека[^]

В будущем, пожалуйста, постарайтесь провести хотя бы фундаментальные исследования самостоятельно, а не тратить впустую свое или наше время.


Рейтинг:
2

Patrice T

Цитата:
Как вывести десятичное число как отношение двух целых чисел?

Насколько я понимаю вопрос, вы хотите найти лучшее соотношение/дробь для десятичного значения (не целого числа), а затем распечатать это соотношение или сделать с ним что-то еще.
Поскольку десятичные значения не являются точными значениями или не точными дробями,вам придется определить, какая дробь является лучшей.
33/50 дробь за 0,66, но если вы хотите дробь только с 1 цифрой, то 2/3-это лучше всего.
Как правило, вам нужна разница при заданном значении.

Затем вам нужно выбрать метод поиска дробей:
Непрерывная дробь - Википедия[^]
Последовательность Фари - Википедия[^]


Рейтинг:
1

Richard MacCutchan

Если ваши переменные являются целыми числами, то значение c будет равно 2, а не 2,5. Ваш вопрос не совсем ясен, но очевидный ответ таков:

int main()
{
    int a = 5;
    int b = 2;
    printf("%d/%d\n", a, b);
}


Afzaal Ahmad Zeeshan

5ед.

Рейтинг:
1

KarstenK

Вы должны использовать какой-то алгоритм простых чисел, чтобы найти общий простые числа и чем делить оба числа, чтобы минимизировать соотношение.

int allCommonPrimes = PrimesOfNumbers( a, b );//your function (test if prime is in a AND b. result is product)
int aPrimes = a / allCommonPrimes;
int bPrimes = b / allCommonPrimes;
char buffer[200];
sprintf( buffer, "%d / %d", aPrime, bPrime);

Если вы хотите сделать некоторые целые числа из десятичной дроби, вам нужно проверить, умножив дробь на простые числа и проверив int (с некоторым допуском), чтобы найти делитель. А затем умножьте на него целочисленную часть.