Форум программистов, компьютерный форум, киберфорум
Наши страницы

Деление дробей. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить, повторяются ли цифры в числе http://www.cyberforum.ru/cpp-beginners/thread341055.html
Нужно ввести число и в результате получить сообщение повторяются цифры в числе или нет.Способ определения может быть любым. Число нужно вводить полностью(не через пробел :)
C++ Синтаксис- непонятные знаки Что значат знаки: ? и : http://www.cyberforum.ru/cpp-beginners/thread341027.html
Инкремент и вывод на консоль. Непонятное. C++
Объясните, пожалуйста, почему, если так: int i = 5; cout << i << " "; cout << ++i << "\n";, то на консоль выводится всё правильно: 5 6. А если расположить так: int i = 5; cout << i << " " <<...
C++ файл.txt
как сделать так чтобы при записи в файл *.txt текст писался на новой строке? Вот на пример вот так: 1)number name 2)number name А не так как у меня 1)number name 2)number name
C++ нубовопросы http://www.cyberforum.ru/cpp-beginners/thread341003.html
У меня вопрос, связанный с циклами. Допустим, нужно суммировать числа от 1 до 10 и в итоге получится 55. Для это сделаем { int sum = 0, val = 1; while ( val <= 10 ) sum += val; ++val; }...
C++ Вопрос про cin.getline() char mas; cout<<"Add Age "; cin>>Age; cout<<"Add Name "; cin.getline(mas,20); Name = new char; strcpy(Name, mas); cout<<"Add University "; подробнее

Показать сообщение отдельно
dmital
1 / 1 / 0
Регистрация: 18.02.2011
Сообщений: 20

Деление дробей. - C++

11.08.2011, 11:20. Просмотров 3245. Ответов 13
Метки (Все метки)

Задача: вывести в порядке возрастания все правильные несократимые дроби со знаменателем, не превосходящим n.
Сам код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <string>
using namespace std;
using std::string;
int main() {
int n,i,num,numi;
float last=0,min;
string temp;
cin>>n;
const int r=n-1;
int a[r];
for(i=1; i<=r ;i++)
 a[i]=1;
while (last<(r/(r+1))) {
min=1;
for (i=1; i<=r; i++) 
if (((a[i]/(i+1))<min)&&((a[i]/(i+1))> last))  {
min=(a[i]/(i+1));
numi=i;
temp=a[i]+"/"+(i+1);
}
last=min;
cout<<temp;
a[numi]++;
}
return 0;
}
Как должно работать: Создается массив из n-1 чисел, причем число a[i] представляет дробь a[i]/(i+1). Первоначально все числа равны единице. last - последняя выведенная дробь, сначала это значение равно нулю. До тех пор, пока не выведена дробь (n-1)/n, проходим весь массив, и выбираем минимальную из дробей вида a[i]/(i+1), запоминаем ее номер, и записываем в строку temp. После окончания цикла выводим дробь и увеличиваем на 1 a[i].
Проблема в том, что нужно как-то изменить процедуру деления, чтобы в результате деления двух целых чисел получалось дробное число, а не ноль, но я не знаю, как это сделать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru