Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Заголовочные файлы *.h Доброго времени суток! Как понят следующее: В заголовочных файлах, в целях более быстрой компиляции, для указателей на типы данных используется предварительное объявление для типа данных, а не... https://www.cyberforum.ru/ cpp-beginners/ thread1943148.html Объясните пожалуйста, почему не работает условие! C++
Начал изучать классы, хочу понять как работать с приватными переменнами! Есть такой вот метод: char* student::returnName() { return name; } В Main такой вот указатель с выделенной...
C++ Константный указатель Здравствуйте! Имею класс - MyClass. Константный указатель на него: const MyClass *pMyClass; Но в программе я присваиваю далее указателю другое значение, и компилятор при этом не выдает ошибку.... https://www.cyberforum.ru/ cpp-beginners/ thread1943078.html C++ Реализовать класс для работы со строками Пожалуйста помогите с заданием Необходимо реализовать класс TString. В процессе выполнения задания нельзя пользоваться классом std::string и подобными ему, а так же функциями работы со строками... https://www.cyberforum.ru/ cpp-beginners/ thread1943012.html
C++ Узнать что прграмма запущена и окно активно Windows
Добрый день! подскажите пожалуйста если программные способы узнать, что запущенна конкретная программа/процесс (интересует именно 1С). И узнать в каком она состоянии: окно свернуто или активно ? под...
C++ Вычисление индекса массы тела https://www.cyberforum.ru/ cpp-beginners/ thread1943009.html
Напишите короткую программу, которая запрашивает рост в футах и дюймах и вес в фунтах. (Для хранения этой информации используйте три переменных.) Программа должна выдать индекс массы тела (body...
C++ Решение системы 3(k+1) о.д.у первого порядка https://www.cyberforum.ru/ cpp-beginners/ thread1942975.html
Здравствуйте, решаю систему 3(k+1) ОДУ первого порядка.Решаю 2 методами - Р.К. 4 порядка и Мерсона. Сама система: \frac{dA}{dt}=\left\{\begin{matrix}\frac{{B}_{11}{\sigma...
открытое хеширование C++
помогите запустить программу ошибка в 13 строке. #include <stdio.h> #include <stdlib.h> #include <stdbool.h> typedef struct info_t { int value; // Значение элемента bool use; //...
C++ Редактирование кода chromium Добрый день, случайно наткнулся на статью про chromium, в которой говорилось что это движок с открытым исх. кодом, я заинтересовался, к тому же давно хотел начать осваивать с++, скачал я значит... https://www.cyberforum.ru/ cpp-beginners/ thread1942914.html C++ В символьной строке удалить все слова, начинающиеся с гласной буквы В символьной строке удалить все слова, начинающиеся с гласной буквы. Не допускается использование библиотек работы с символьными строками. Помогите пожалуйста, пары пропустил и ничего не могу найти... https://www.cyberforum.ru/ cpp-beginners/ thread1942910.html
C++ Заполнение одномерного массива
Всем привет Имеется RGB массив uint16_t led_blue_full={100,100,100,100,100,100,100,100,50,50,50,50,50,50,50,50,100,100,100,100,100,100,100,100};//Синий цвет светодиодов (255,0,255) Также...
C++ Компоновка программы (подключение объектного модуля к проекту) https://www.cyberforum.ru/ cpp-beginners/ thread1942903.html
Подскажите пожалуйста. Пытаюсь в VS2010 подключить к консольному проекту MultiFile объектный файл другого проекта AddFile.obj для использования его функции func1(). Добавляю в проект скомпонованный...
Форумчанин
Эксперт CЭксперт С++
8194 / 5044 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
21.03.2017, 14:03 0

Преобразование денежной суммы из численного вида в строковый - C++ - Ответ 10240208

21.03.2017, 14:03. Показов 1901. Ответов 1
Метки (Все метки)

Лучший ответ Сообщение было отмечено Foxx111 как решение

Решение

Для вывода рублей до 1000
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
110
111
112
113
114
115
116
117
118
#include <clocale>
#include <cstdlib>
#include <iostream>
using namespace std;
 
// процедура печати слова рубль с нужным окончанием
void PrintRubles(const int x)
{
    if (x / 10 % 10 == 1) // диапазон 10-19 всегда оканчивается на "рублей"
        cout << "рублей";
    else
    {
        switch (x % 10) // смотрим на последнюю цифру
        {
        case 1:
            cout << "рубль";
            break;
        case 2:
        case 3:
        case 4:
            cout << "рубля";
            break;
        default:
            cout << "рублей";
            break;
        }
    }
}
 
// процедура печати количества рублей прописью
void Print(const int x)
{
    // объявляем массивы строк для удобства работы
    const char *hundreds[] = { // сотни
        "",
        "сто ",
        "двести ",
        "триста ",
        "четыреста ",
        "пятьсот ",
        "шестьсот ",
        "семьсот ",
        "восемьсот ",
        "девятьсот "
    },
    *tens[] = { // десятки
        "",
        "", // попадает в исключения от 10 до 19
        "двадцать ",
        "тридцать ",
        "сорок ",
        "пятьдесят ",
        "шестьдесят ",
        "семьдесят ",
        "восемьдесят ",
        "девяносто "
    },
    *lastNums[] = { // единицы и крайние случаи
        "",
        "один ",
        "два ",
        "три ",
        "четыре ",
        "пять ",
        "шесть ",
        "семь ",
        "восемь ",
        "девять ",
        "десять ",
        "одиннадцать ",
        "двенадцать ",
        "тринадцать ",
        "четырнадцать ",
        "пятнадцать ",
        "шестнадцать ",
        "семнадцать ",
        "восемнадцать ",
        "девятнадцать "
    };
 
    // начинаем обработку числа
    if (x == 1000)
        cout << "тысяча ";
    else
    {
        // разбираем число по цифрам
        const int hundred = x / 100,
            ten = x / 10 % 10,
            // используем тернарный оператор для присваивания в зависимости от значения десятков
            last = (ten == 1 ? x % 100 : x % 10);
 
        cout << hundreds[hundred] << tens[ten] << lastNums[last]; // выводим число прописью
    }
 
    // добавляем окончание
    PrintRubles(x);
    cout << endl; // перевод строки
}
 
// главная функция
int main()
{
    setlocale(LC_ALL, ""); // для вывода кириллицы
 
    int x;
    // считываем значение с проверкой диапазона
    do
    {
        cout << "Введите значение (от 1 до 1000), 0 для выхода: ";
        cin >> x; // считываем значение с клавиатуры
        if (x < 0 || x > 1000)
            cout << "Неверное значение, повторите ввод\n";
        else if (x != 0)
            Print(x); // вызов процедуры
    } while (x != 0); // пока не ввели 0
 
    system("pause"); // пауза
}


Вернуться к обсуждению:
Преобразование денежной суммы из численного вида в строковый C++
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.03.2017, 14:03
Готовые ответы и решения:

Реализовать метод summa () для вычисление денежной суммы
Поле first — целое положительное число, номинал купюры; номинал может принимать значения 1, 2, 5,...

Реализовать метод summa () для вычисление денежной суммы.
С++ Создать структуру-пару с двумя полями, которые обычно имеют имена first и second. Требуется...

Преобразование денежной суммы, заданной в виде дробного числа, в формат «рубли – копейки»
Разрабатывается приложение «Lab02_02», которое: 1) имеет интерфейс, разработанный с применением...

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

1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.03.2017, 14:03
Помогаю со студенческими работами здесь

Регулярное выражение для денежной суммы
Друзья. Всем доброго времени суток =) Бьюсь с регуляркой уже пол часа, хотя вопрос очень смешной)...

Реализовать метода summa(). Вычисление денежной суммы
Нужно что-то сделать с кодом, чтобы подсчет суммы денег шел столько раз, сколько захочет...

Конвертер: пересчет денежной суммы в рублях в другую валюту
3. Создайте приложение пересчета денежной суммы в рублях в другую валюту. Для этого создайте:...

Проверка валидности денежной суммы если пустая строка
Всем привет, Для проверки валидности денежной суммы я залавал регулярку /^\d+(\.\d{1,2})?$/ Она...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru