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

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

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

Вывести на экран дроби по заданному примеру - C++

20.11.2015, 15:02. Просмотров 355. Ответов 12
Метки нет (Все метки)

Вывести все несократимые дроби от 0 до 1 со знаменателем от 2 до 7. Например:

2: 1/2
3: 1/3 2/3
4: 1/4 3/4
5: 1/5 2/5 3/5 4/5
6: 1/6 5/6
7: 1/7 2/7 3/7 4/7 5/7 6/7
Примерный код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
void main(){
    setlocale(LC_ALL, "Russian");
    int i = 2, d;
    for (; i <= 7; i++)
    {
        cout << i << ": ";
        for (d = 1; i > d; d++)
        
            cout << d << "/" << i << " ";
            cout << "\n";
        
    }
    cout << "\n";
 
    system("pause>txt");
}

Так выводится следующее:

2: 1/2
3: 1/3 2/3
4: 1/4 2/4 3/4
5: 1/5 2/5 3/5 4/5
6: 1/6 2/6 3/6 4/6 5/6
7: 1/7 2/7 3/7 4/7 5/7 6/7
Как через if прописать в программу, чтобы не выводились дроби, которые можно сократить? (2/4, 2/6, 3/6, 4/6).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2015, 15:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести на экран дроби по заданному примеру (C++):

вывести на экран числа,вот по примеру ,там числа и знаки изменить надо - C++
Вывести на экран числа в виде слейдующей таблицы: 6 6 6 6 6 7 7 7 7 8 8 8 9 9 10 пример:

Посчитать и вывести на экран сумму элементов массива, кратных заданному числу - C++
Добрый день! Помогите пожалуйста с программой. Написала программу с массивом, в которой используется указатель. Программа выводит...

Даны три вещественных числа, вывести на экран те из них, которые не принадлежат заданному диапазону - C++
Даны три вещественных числа, вывести на экран те из них, которые не принадлежат диапазону (-3,8; 1,8). #include &quot;stdafx.h&quot; #include...

вывести на экран только те числа на отрезке [a,b], у которых кол-во делителей равно заданному числу - C++
это нужно сделать с помощью функции,которая для заданного числа N возвращает значение true-если число простое.false-если число составное. ...

Вывести на экран все рейсы, отправляющиеся в пункт А (поиск в массиве структур по заданному полю) - C++
В задаче необходимо вывести на экран все рейсы, отправляющиеся в пункт А, введенный с клавиатуры. Собственно, неработающий код: ...

Вывести на экран только те целые числа отрезка [a, b], у которых сумма делителей равна заданному числу - C++
Ребята выручайте, Разработать функцию, которая для заданного натурального числа N возвращает сумму его делителей. С помощью данной...

12
Gloat
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 26
20.11.2015, 15:08 #2
емаё, не правильно задание прочитал ))
надо расписать функцию нахождения наименьшего общего делителя, (если нет в стандартных) и через неё прогонять цифры дроби.
0
Error906
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 34
20.11.2015, 15:12  [ТС] #3
Еще варианты есть?
0
Kerry_Jr
Модератор
Эксперт PHP
2206 / 2002 / 701
Регистрация: 14.05.2014
Сообщений: 5,867
Записей в блоге: 1
Завершенные тесты: 5
20.11.2015, 15:16 #4
Error906, это из Лафоре что ли? Знакомая задачка.
0
Error906
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 34
20.11.2015, 15:20  [ТС] #5
Kerry_Jr, такую задачку нам задали в учебном заведении под название "ШАГ", если слыхали. Не знаю уж откуда преподаватель черпает подобные материалы.
0
Gloat
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 26
20.11.2015, 15:25 #6
Error906,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
long Nod(long a, long b) // функция поиска НОДа
{
    while (a && b)
        if (a >= b)
           a %= b;
        else
           b %= a;
    return a | b;
}
if (NOD(a, b) == 1){ // после второго for ставишь
cout << d << "/" << i << " ";
cout << "\n";
}
http://cs613521.vk.me/v613521296/1205f/rBvpjE3jscE.jpg
0
Error906
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 34
20.11.2015, 15:28  [ТС] #7
Gloat , спасибо, но решение явно должно быть проще, ибо "функцию поиска НОДа" мы еще не учили, а задание уже выполнить нужно.

Как еще возможно выполнить?
0
Dimension
Dimension
569 / 438 / 135
Регистрация: 08.04.2014
Сообщений: 1,709
Завершенные тесты: 1
20.11.2015, 15:31 #8
перебирать делители числителя и знаменателя вручную
0
Gloat
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 26
20.11.2015, 15:31 #9
Error906, принцип поиска НОДа на математике учат, а функция.., Вас учили писать функции?
0
Error906
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 34
20.11.2015, 15:34  [ТС] #10
Gloat, конечно. Но про НОД - впервые слышу, если честно. Других вариантов нет?
0
Gloat
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 26
20.11.2015, 15:40 #11
Error906, как написали выше, перебирать вручную, а НОД, это математика,
http://math-prosto.ru/?page=pages/find_nod_and_nok/find_nod.php
этот способ проще,
P.S.
наибольший общий делитель* (описался выше)
0
Kerry_Jr
Модератор
Эксперт PHP
2206 / 2002 / 701
Регистрация: 14.05.2014
Сообщений: 5,867
Записей в блоге: 1
Завершенные тесты: 5
20.11.2015, 15:43 #12
Error906,
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
#include <iostream>
#include <cstdlib>
 
int main()
{
    bool divisible = false;
    for (int i = 2; i <= 7; ++i)
    {
        for (int j = 1; j < i; ++j)
        {
            divisible = false;
            for (int k = 2; k <= j; ++k)
                if (i % k == 0 && j % k == 0)
                {
                    divisible = true;
                    break;
                }
            if (!divisible) 
                std::cout << j << '/' << i << ' ';
        }
        std::cout << std::endl;
    }
    
    system("pause");
}
1
Error906
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 34
23.11.2015, 14:30  [ТС] #13
Все оказалось гораздо проще.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
void main(){
    setlocale (LC_ALL, "Russian");
    int i = 2, d;
    for(;i <= 7; i++)
    {
        cout << i << ": ";
        for(d = 1;i > d; d++)
        if((d%2 || i%2) && (d%3 || i%3))
        cout << d << "/" << i << " ";
        cout << "\n";
    }
    cout << "\n";
 
    system("pause>txt");
}
0
23.11.2015, 14:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2015, 14:30
Привет! Вот еще темы с ответами:

Одномерные массивы. Вывести на экран массив, составленный из номеров элементов исходного массива, которые равны заданному значению. - C++
Надоела уже наверное...ноо..выручайте( с++ Задан массив целых чисел. Вывести на экран массив, составленный из номеров элементов...

Перевод десятичной дроби в обычную и вывод на экран - C++
Доброго времени суток, у меня такая проблема, мне нужно перевести десятичные дроби в обычные, например: 0.1 выдать на экран как 1/10, или...

Как вывести текст из типизированного файла в компонент к примеру в memo или panel? - C++
Как вывести текст из типизированного файла в компонент к примеру в memo или panel?

Как объявить массив на 5 элементов, вывести на экран, проинициализировать его и снова вывести на экран? - C++
как объявить массив на 5 элементов, вывести на экран, проинициализировать его и снова вывести на экран?


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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