Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 0
Регистрация: 16.12.2012
Сообщений: 97

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

11.03.2013, 12:57. Показов 1324. Ответов 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() не помогает
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.03.2013, 12:57
Ответы с готовыми решениями:

Запись в реестр обрезается
Всем привет. Пишу программку, которая записывает в реестр указанные пути к файлам. Код такой. struct vec { ... int length;//длина...

Обрезается файл после экстренного выключения ПК
Доброго времени суток! Есть программа которая сохраняет результаты в .txt файл к примеру, через каждые 10 секунд (как автосейв). Все бы...

Дано целое число. Вывести его строку-описание вида «отрицательное чет-ное число», «нулевое число», «положительное нечетное число» и т. д.
Дано целое число. Вывести его строку-описание вида «отрицательное чет-ное число», «нулевое число», «положительное нечетное число» и т. д. ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.03.2013, 12:57
Помогаю со студенческими работами здесь

Memo - поле обрезается до 255 знаков
Здравствуйте. Использую Builder 2009 и бд Access. Возникла такая проблема: на форме расположен компонент ADOQuery и DBGridEh. В БД есть...

Обрезается сообщение в системе: клиент - сервер
Изучаю &quot;Самоучитель игры на WINSOCK&quot;. Использую пример TCP клиента и сервера, при отправке сообщение серверу, оно возвращается уже...

При увеличении изображения картинка обрезается,помогите!
В общем я пишу программу для просмотра изображений,написал поворот на 90 градусов в любую сторону,увеличить,уменьшить,ну и тд,но тут...

C++ Builder 6: при увеличении шрифта в заголовке кнопки, он обрезается с трех сторон
Только начинаю свой путь Когда создаю Button и увеличиваю шрифт, то Caption обрезается, как я понимаю, слева, снизу и справа Почему...

Обрезается форма
Тестирую свою прогу на нескольких компах и заметил, что на некоторых форма обрезается сбоку (см. скрины). Это из-за разного разрешения? ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru