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

Обрезается число - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Реализовать двумерный динамический треугольный массив. Количество строк и сами элементы вводит пользователь. Количество элементов в строке рассчитывае http://www.cyberforum.ru/cpp-beginners/thread805416.html
Реализовать двумерный динамический треугольный массив. Количество строк и сами элементы вводит пользователь. Количество элементов в строке рассчитывается из ее номера: в 0-й один элемент, в 1-й – два и т.д. Например: 1 2 2 3 3 3 4 4 4 4
C++ Описать функцию DegToRad (D) вещественного типа,находящую величину угла в радианах Описать функцию DegToRad (D) вещественного типа,находящую величину угла в радианах, если дана его величина D в градусах(D-вещественное число,0<D<360). Воспользоваться следующим соотношением:180=П радианов. В качестве значения П использовать 3.14. С помощью функции DegToRad перевести из градусов в радианы пять данных углов. пожалуйста решите :handshake: http://www.cyberforum.ru/cpp-beginners/thread805414.html
Дано целое число N (> 0) C++
Дано целое число N (> 0). Найти наименьшее целое положительное число K, квадрат которого превосходит N: K2 > N нужен код С++ :wall: помоооогите
C++ Вычислить значение выражения
вычислить значение выражения "n!/m!-n!" помогите плииис нужен полностью код С++
C++ Работа с динамическим массивом слов http://www.cyberforum.ru/cpp-beginners/thread805379.html
суть такова, ввести массив слов, выделяя под него память, потом вызвать функцию которая все одинаковые слова перенесет в новый массив, как раз в этой функции newarray цикл с i выполняется только для i=0 дальше не работает, не понимаю в чем проблема, объясните пожалуйста, помогите найти ошибки в коде. #include <iostream> #include <stdlib.h> #include <string.h> using namespace std; void...
C++ Алгоритмы поиска в глубину и ширину Помогите с кодом: на входе файл есть файл вида: n m v1 u1 v2 u2 .... vm um Здесь n - количество вершин графа (целое число, больше нуля), m - количество ребер графа (целое число, больше нуля), vi и ui * - Начальная и конечная вершина ребра i (1 ≤ vi ≤ n, подробнее

Показать сообщение отдельно
kukhtikov
2 / 2 / 0
Регистрация: 16.12.2012
Сообщений: 97

Обрезается число - C++

11.03.2013, 12:57. Просмотров 366. Ответов 0
Метки (Все метки)

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include "stdafx.h"
#include <string.h>
#include <conio.h>
#include <iostream>
#include <locale.h>
#include <cmath>
#include <conio.h>
 
using namespace std;
 
class Chislo
{
private:
        double value;  
    public:
        Chislo() 
        {
            value = 0;
        }
        void set(double _value)                 //инициализируем поле
        {
            value = _value;
        }
        double getNumber()                      //получить значение
        {
            return value;
        }
        int tselN()                             //Количество цифр в целой части числа
        {
            int chislo = (int)value, i = 1;
            while(chislo / 10 != 0)
            {
                ++i;
                chislo /= 10;
            }
 
            return i;
        }
        int drobN()                             //количество чисел в дробной части числа
        {
            double fractpart, intpart;
            fractpart = modf (value , &intpart);
 
            char buff [100];
            int kol = 0, size = 0, i = 0, kol1;
            bool flag = false;
            if(fractpart != 0)                  //если после запятой есть цифры
            {
                sprintf(buff, "%f", fractpart);     //double -> char
                size = strlen(buff);
                for(i = 0; i < size; i++)       //считаем от конца до первой
                {                               //цифры отличной от нуля
                    if(buff[i] == ',')
                    {
                        for(int j = size - 2; j > i; --j)       //считаем от цифры до запятой
                        {
                            if(buff[j] == '0')
                                ++kol;
                            else
                            {
                                flag = true;
                                break;
                            }
                        }
                    }
                    if(flag == true)
                    {
                        ++i;
                        break;
                    }
                }
                kol1 = size - 1 - i - kol;          //кол-во эл-ов после запятой
                kol = kol1; 
            }
            else                                //иначе после запятой только нули
                kol = 0;
            return kol;                     //возвращаем кол-во цифр после запятой
        }
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "rus");
    int Kol_el;
    cout << "Введите размер массива: ";
        cin >> Kol_el;
    double value;
    Chislo Universal;
    Chislo *pChislo = new Chislo[Kol_el];           //выделяем память
    //инициализация массива
    for (int i = 0; i < Kol_el; i++)
    {
        cout << "Введите элемент массива [" << i << "]: ";
            cin >> value;
            pChislo[i].set(value);
    }
    cout << "\n";
    //Вывод на экран
    for(int i = 0; i < Kol_el; i++)
    {
        cout << "Число x[" << i << "]: " << pChislo[i].getNumber() 
            << "\nКоличество чисел в целой части числа: " << pChislo[i].tselN()
            <<"\nКоличество цифр в дробной части числа: " << pChislo[i].drobN() << "\n";
        cout << "\n";
    }
    delete []pChislo;           //освобождаем память
    _getch();
    return 0;
}
Условие задачи:
Кликните здесь для просмотра всего текста

Описать класс, включающий заданные поля и функции. Разработать программу, которая создает массив объектов (размерность массива n вводится с клавиатуры) и выполняет требуемые действия.
Класс - вещественное число, записанное с точкой. Параметры - его значение (вещественный тип) и запись (строковое представление числа). Статус доступа всех полей private. Класс включает: конструктор и функции, определяющие количество цифр в дробной и целой частях числа. Определить сумму введенных чисел и отношение количества цифр в целой и дробной частях всех чисел.


Я допустим ввожу число 101.1001 , а выводит 101.1 . В чем у меня проблема? С числами без нуля в дробной части все нормально

Добавлено через 5 минут
Очистка буфера flushall() не помогает
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru