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

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

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

разряд десятичной дроби - C++

20.05.2013, 20:40. Просмотров 349. Ответов 0
Метки нет (Все метки)

Класс fraction представлен двумя полями: long int intg - целая часть десятичной дроби и unsigned short int frct - дробная часть. реализовать метод сложения двух десятичных дробей. unsigned int rzrd - количество знаков после запятой. Ниже представлен мой вариант кода. Некорректно складываются дробные части. Не могу сообразить, как реализовать метод с помощью переменной rzrd.

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
#ifndef FRACTION_CLASS
#define FRACTION_CLASS
 
#include <iostream>
 
 using namespace std;
 
 class fraction{
     public:
        fraction(){ intg=0; frct=0; };
        fraction( long int a, unsigned short int b) { intg=a; frct=b; }
        void get_intgfrct( long int &a, unsigned short int & b) { a = intg; b = frct; }
       friend fraction operator+(const fraction& f1, const fraction& f2);
private:  
          long int intg;
          unsigned  short int frct;
          unsigned int rzrd;
  };
  #endif
 
// реализация оператора сложения
 
fraction operator+(const fraction& f1, const fraction& f2) {
               fraction temp;
               
               temp.intg = f1.intg + f2.intg;
               temp.frct = f1.frct + f2.frct;
               return temp;  
}
 
// в main.cpp
 
using namespace std;
 
int main(int argc, char *argv[])
{
    fraction f1(5,04), f2(4,203), f3;
    long int intg;
    unsigned short int frct;
    
    f3 = f1 + f2;
    f3.get_intgfrct(intg, frct);
    cout << "(f1 + f2) =  " << intg << ", " << frct << "\n" ;
 
system("PAUSE");
    return EXIT_SUCCESS;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2013, 20:40     разряд десятичной дроби
Посмотрите здесь:

C++ Определить длину периода десятичной записи дроби 1/n
C++ Найти переодическую и непереодическую части десятичной дроби равной m/n
C++ Дано натуральное число n > 1. Определить длину периода десятичной записи дроби 1/n.
C++ Даны сумма цифр и младший разряд многозначного числа
C++ Перевод десятичной дроби из двоичной системы счисления в десятичную
C++ Раздробить число на массив трехзначных чисел с переходом на разряд
Выделить период в десятичной дроби, если таковой имеется C++
Получение целой и дробной части для десятичной дроби C++
Переставить первую цифру числа в разряд единиц C++
Умножение десятичной периодической дроби на число C++
Узнать, установлен ли разряд C++
C++ Перевод десятичной дроби в обычную и вывод на экран

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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