Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
OldFile
0 / 0 / 0
Регистрация: 10.04.2014
Сообщений: 15
#1

Вывод числа,через дробь - C++

14.04.2014, 23:51. Просмотров 433. Ответов 7
Метки нет (Все метки)

Вот у меня такая задача:
Написать программу вычисления суммы 1+1/2+1/3+...+1/n для заданного числа n. Результат представить в виде несократимой дроби p/q (p, q — натуральные).Решить задачу с помощью функции.
Нашел ответ,сделан на паскале,но без помощи процедур.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
program nom11;
var p, q, n, i: integer;
begin
write('n=');
readln(n);
p:=1;
q:=1;
for i:=2 to n do
 begin
   p:=p*i+q;
   q:=i*q;
 end;
write('Summa=',p,'/',q);
readln
end.
Попробовал перевести,но я не пойму как вернуть вот эту строчку
C++
1
cout << p << "/" << q;
Вот сама программа:
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
#include <iostream>
using namespace std;
int sum(int n);
 
int main()
{
    int n;
    cout << "Enter n:", cin >> n;
    cout << "Sum = " << sum(n) << endl;
    system("pause");
}
 
int sum(int n)
{
    int p, q;
    p = 1; q = 1;
    for (int i = 2; i <= n; i++)
    {
        p *= i + q;
        q = i*p;
    }
    return p / q;
       // Но нужно что бы оно не считало,а выводило дробью
}
И кстати,правильная ли вообще программа,которая была изначально?)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2014, 23:51     Вывод числа,через дробь
Посмотрите здесь:

Преобразование десятичного числа в дробь - C++
Собственно не могу придумать код реализации десятичного числа в дробь(например 0.75 = 1/3), может кто подкинет идейку?=)

Вывод всех цифр введенного пользователем числа через пробел в обратном порядке - C++
Задача: Написать программу, которая выводит на экран все цифры введенного пользователем числа через пробел в обратном порядке. Всё это...

Сократить дробь, т е найти такие натуральные числа p и q , не имеющий общий делитель - C++
Даны натуральных числа a и b, обозначающие соответственно числитель и знаменатель дроби. Сократить дробь, т е найти такие натуральные числа...

Ввод двузначного числа и вывод обратного числа - C++
Помогите пожалуйста сделать( Арифметика: Z=4 cosα2 ⋅cos52 α⋅cos 4α Текст: Составить программу, в которая запрашивает ввод...

Ввод чисел через пробел до определеного числа,убрать оставшиеся числа - C++
Нужно ввести числа через проблем, набор заканчиваеться числом меньше или равно нулю. Пример: 1 2 3 -1 5 6 7 (занести нужно будет...

Как сделать из двухзначного числа два числа через пробел? - C++
Как сделать из двухзначного числа два числа через пробел? Например: 44 = 4 4 Кто знает?

Вывод через строку - C++
Сейчас программа выдает через cout результат, а нужно сделать через строку Помогите пожалуйста как это реализовать) #include &lt;string&gt; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrineK
Заблокирован
14.04.2014, 23:59     Вывод числа,через дробь #2
Хотите, чтобы возвращались p, q соорудите функцию с возвратом параметров:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
int n, p = 1, q = 1; //начальные значения
//....
void sum(n, p, q);
cout << p << "/" << q;
//....
}
 
void sum(int n, int &p, int &q)
{ for (int i = 2; i <= n; i++)
    {
        p *= i + q;
        q = i*p;
    }
}
OldFile
0 / 0 / 0
Регистрация: 10.04.2014
Сообщений: 15
15.04.2014, 00:21  [ТС]     Вывод числа,через дробь #3
Цитата Сообщение от IrineK Посмотреть сообщение
Хотите, чтобы возвращались p, q соорудите функцию с возвратом параметров:
...,не совсем пойму что сделать,точнее,что возвращать из функции void sum ?
IrineK
Заблокирован
15.04.2014, 00:23     Вывод числа,через дробь #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
void sum(int n, int &p, int &q);
 
int main()
{
    int n, p = 1, q = 1;
    cout << "Enter n:", cin >> n;
    sum(n, p, q);
cout << p << "/" << q;
    system("pause");
}
 
 
void sum(int n, int &p, int &q)
{ for (int i = 2; i <= n; i++)
    {
        p *= i + q;
        q = i*p;
    }
}
OldFile
0 / 0 / 0
Регистрация: 10.04.2014
Сообщений: 15
15.04.2014, 00:32  [ТС]     Вывод числа,через дробь #5
Примерно так и пробовал.
но не компилируется:
исходный код.cpp(9): error C2660: sum: функция не принимает 3 аргументов
IrineK
Заблокирован
15.04.2014, 00:36     Вывод числа,через дробь #6
Вы вот все скопируйте и запустите.
OldFile
0 / 0 / 0
Регистрация: 10.04.2014
Сообщений: 15
15.04.2014, 00:47  [ТС]     Вывод числа,через дробь #7
Цитата Сообщение от IrineK Посмотреть сообщение
Вы вот все скопируйте и запустите.
Хм..да я так и сделал.Ошибка та же.
Миниатюры
Вывод числа,через дробь  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2014, 00:51     Вывод числа,через дробь
Еще ссылки по теме:

Вывод данных через время - C++
Доброго утра всем! У моего знакомого в институте на 2 курсе ввели практику по С++,первым заданием на дом дали сделать задачу, стало...

Вывод float через fprintf - C++
Ребят, подскажите как надо прописать fprintf, чтобы вывести у числа float только целую часть. Заранее благодарен.

Ввод и вывод через fstream - C++
Непонятно почему не выводит в файл. Например в файле 123 &quot;аааббб&quot; а в файл 321 пустота, но если использовать разные имена потоков все ок. ...

Вывод строки через 1 символ - C++
Например есть строковой массив ch через cin&gt;&gt;ch; пользователь введёт 123456789. Нужно чтобы вывелось 13579.

Вывод массива через указатель - C++
Небольшой набросок, есть функция, вычисляющая значения произвольного выражения. Эти значения потом скидываются в массив. Хочу возвратить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
IrineK
Заблокирован
15.04.2014, 00:51     Вывод числа,через дробь #8
В третьей строке наверху пишем

void sum(int n, int &p, int &q);

И будет вам счастье.
Yandex
Объявления
15.04.2014, 00:51     Вывод числа,через дробь
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru