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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.67
lEX102
0 / 0 / 0
Регистрация: 20.11.2011
Сообщений: 8
#1

N и M числитель и знаменатель дроби, составить программу, позволяющая сократить эту дробь. - C++

20.11.2011, 20:27. Просмотров 1957. Ответов 14
Метки нет (Все метки)

помогите пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2011, 20:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос N и M числитель и знаменатель дроби, составить программу, позволяющая сократить эту дробь. (C++):

Вводятся числитель a и знаменатель b дроби. Вывести: знак, целую часть, сокращенные числитель и знаменатель - C++
Вводятся числитель a и знаменатель b дроби. Вывести: знак, целую часть, сокращенные числитель и знаменатель.

C++. Перезагрузка операторов (Написать класс Дробь с полями числитель и знаменатель) - C++
2. Написать класс Дробь с полями числитель и знаменатель. Реализовать следующие методы: - Конструктор по умолчанию, конструктор с...

Несократимая дробь ,представленная двумя длинными целыми:числитель и знаменатель - C++
Несократимая дробь ,представленная двумя длинными целыми:числитель и знаменатель. Написать программу с использованием классов. #include...

Вывести: знак, целую часть, сокращенные числитель и знаменатель дроби - C++
Вводятся числитель a и знаменатель b дроби. Вывести: знак, целую часть, сокращенные числитель и знаменатель.

Создать класс «дробь» с компонентными данными: целая часть, числитель, знаменатель. Перегрузить операции: >>, - C++
Здравствуйте,вот задача: Создать класс «дробь» с компонентными данными: целая часть, числитель, знаменатель. Перегрузить операции: >>,...

Составить программу , позволющую сократить дробь. - C++
M и N - числитель и знаменатель обыкновенной дроби. Составить программу , позволющую сократить дробь.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
neske
1482 / 849 / 76
Регистрация: 26.03.2010
Сообщений: 2,917
20.11.2011, 20:49 #2
разделите Н и М на нод (Н, М)
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.11.2011, 20:55 #3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<stdio.h>
long Nod(long a, long b)
{
    while (a && b)
        if (a >= b)
           a %= b;
        else
           b %= a;
    return a | b;
}
 
int main( )
{
    long a, b, nod;
    scanf("%ld%ld", &a, &b);
    nod  = Nod(a, b);
    printf("%ld %ld\n", a/nod, b/nod);
    return 0;
}
iama
1250 / 975 / 49
Регистрация: 30.07.2010
Сообщений: 5,297
20.11.2011, 21:02 #4
Thinker, а если я введу
0 0
-comrade-
355 / 356 / 42
Регистрация: 11.06.2010
Сообщений: 703
20.11.2011, 21:05 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
using namespace std;
 
int gcd(int n,int m)
{
   if (m==0) return n;
   return gcd(m,n%m);
}
 
int main()
{
    setlocale(0,"");
    int n, m;
    cout<<"N="; cin>>n;
    cout<<"M="; cin>>m;
    if(!m)          cout<<"ГЌГ* Г*îëü äåëèòü Г*åëüçÿ."<<endl;  
    else if(n%m==0) cout<<"PåçóëüòГ*ГІ: "<<n/m<<endl;    
         else       cout<<"PåçóëüòГ*ГІ: "<<n/gcd(n,m)<<"/"<<m/gcd(n,m)<<endl;      
    system("pause");
    return 0;
}
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.11.2011, 21:08 #6
Цитата Сообщение от iama Посмотреть сообщение
Thinker, а если я введу
А вы не вводите так На самом деле проверки лень писать)
lEX102
0 / 0 / 0
Регистрация: 20.11.2011
Сообщений: 8
20.11.2011, 21:10  [ТС] #7
можно пожалуйста без этих не знакомых мне директив, только с stdio.h и math.h
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.11.2011, 21:13 #8
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
#include<stdio.h>
long Nod(long a, long b)
{
    while (a && b)
        if (a >= b)
           a %= b;
        else
           b %= a;
    return a | b;
}
 
int main( )
{
    long a, b, nod;
    scanf("%ld%ld", &a, &b);
    if (!a && !b)
       puts("a = 0, b = 0");
       else if (b == 0)
           puts("b = 0");
       else
       {
          nod  = Nod(a, b);
          printf("%ld %ld\n", a/nod, b/nod);
       }
    return 0;
}
mc.Duck
Заблокирован
20.11.2011, 21:25 #9
Вот:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <cstdlib>
#include <clocale>
#include <iomanip>
using namespace std;
 
 
 int main(void)
 {
     setlocale(LC_ALL,"Russian");           //âêëþ÷Г*ГҐГ¬ ðóññêóþ êèðèëëèöó
 
while(true)
{
  int n0=0;
  int m0=0;
  cout<<"Ââåäèòå ÷èñëèòåëü äðîáè: ";cin>>n0;
  cout<<endl;
  cout<<"Ââåäèòå Г§Г*Г*ìåГ*Г*òåëü äðîáè: ";cin>>m0;
  
  int m1[100];
  int m2[100];
  int m3[100];
  int c1=0;
  int c2=0;
  int n=n0;
  int m=m0;
 
  for(int i=2;i<=n;i++)
  if(n % i == 0) {c1++;m1[c1]=i; n/=i;}
 
  for(int j=2;j<=m;j++)
  if(m % j == 0) {c2++;m2[c2]=j;m/=j;}
  
  int c3=0;
  
  for(int i=1;i<=c1;i++)
  for(int j=1;j<=c2;j++)
  if(m1[i]==m2[j]) {c3++;m3[c3]=m1[i];}
  
  for(int i=1;i<=c3;i++) {n0/=m3[i];m0/=m3[i];}
  
  cout<<endl;cout<<endl;
  cout<<n0<<"/"<<m0<<endl;
  
  cout<<endl;cout<<endl;
  
}
 }
neske
1482 / 849 / 76
Регистрация: 26.03.2010
Сообщений: 2,917
20.11.2011, 21:26 #10
быдлокодер)
iama
1250 / 975 / 49
Регистрация: 30.07.2010
Сообщений: 5,297
20.11.2011, 21:27 #11
neske, капитан

А код-то действительно достойный
mc.Duck
Заблокирован
20.11.2011, 21:34 #12
neske, да уж согласен, код получился не ахти - спешил)))
iama
20.11.2011, 21:36
  #13

Не по теме:

mc.Duck, спешил?! Уж не отговаривайся, просто ты плохой программист.

Dani
20.11.2011, 21:50
  #14

Не по теме:

Цитата Сообщение от Thinker Посмотреть сообщение
А вы не вводите так На самом деле проверки лень писать)
Простые числа

Thinker
20.11.2011, 22:17     N и M числитель и знаменатель дроби, составить программу, позволяющая сократить эту дробь.
  #15

Не по теме:

Dani, вы правы

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2011, 22:17
Привет! Вот еще темы с ответами:

Составить программу для деления дроби на дробь - C++
Помогите плз: Даны две дроби A/B и C/D (А, В, С, D — натуральные числа). Составить программу для деления дроби на дробь. Результат должен...

Составить программу для деления дроби на дробь - C++
6.1.1. Помогите, пожалуйста, решить задачу в С++, с помощью функций. Даны две дроби A/B и C/D (А, В, С, D — натуральные числа)....

Составить программу для умножения дроби на дробь с использованием пользовательских функций - C++
Помогите пожалуйста!) Даны две дроби A/B и C/D (A, B, C, D – натуральные числа). Составить программу для умножения дроби на дробь....

Как написать класс «несократимая дробь» (т.е. дроби 2/4, 4/8 и т.п. есть дробь 1/2)? - C++
Я только начанаю знакомство с C++. В классе реализовать следующие методы: конструкторы (по умолчанию, с параметрами, копирования), ввод с...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
20.11.2011, 22:17
Ответ Создать тему
Опции темы

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