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

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

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

Напечатать число русскими словами - C++

31.08.2013, 15:54. Просмотров 419. Ответов 1
Метки нет (Все метки)

дано натуральное число n. Напечатать это число русскими словами (сто пять, двести сорок один...)
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.08.2013, 15:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Напечатать число русскими словами (C++):

Напечатать данное натуральное число русскими словами - C++
Дано натуральное число n (n<=1000). Напечатать это число русскими словами (тринадцать, сто пять, двести сорок один, тысяча и т.д) ...

Записать число русскими словами - C++
Добрый день! Вот условие: Дано натуральное число n≤1000. Записать русскими словами (семнадцать, три, тысяча и т. д.). есть код на...

Имена переменных русскими словами - C++
Попробовал объявить переменную русским словом, присвоить значение и напечатать. Всё получилось. А почему в учебниках пишут, что можно...

как заполнить массив строк с консоли русскими словами ? - C++
А после заполнения вывести число повторений каждого слова.

Напечатать предложение со словами в обратном порядке - C++
Есть предложение. Необходимо напечатать его слова в обратном порядке.

Напечатать текст, выпустив повторяющиеся пробелы между словами - C++
Здравствуйте, ПОМОГИТЕ пожалуйста! Напечатать текст, выпустив повторяющиеся пробелы между словами. (С++)

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Hugra
47 / 47 / 1
Регистрация: 18.07.2013
Сообщений: 138
Записей в блоге: 1
31.08.2013, 16:04 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от tohir_91 Посмотреть сообщение
дано натуральное число n. Напечатать это число русскими словами (сто пять, двести сорок один...)
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
#include <iostream>
#include <conio.h>
#include <string>
#include <Windows.h>
 
std::string towords(int numb);
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int numb=100500;
    std::string str=towords(numb);
    std::cout<<numb<<" = "<<str;
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
 
std::string towords(int numb){
    //массив, для определения разряда, в котором находимся(сотни,десятки,еденицы...)
    int osn[11]={0,1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000};
 
    //массив оснований
    std::string basis[11][10]={
        {"","","","","","","","","",""},
        {"","один","два","три","четыре","пять","шесть","семь","восемь","девять"},
        {"","десять","двадцать","тридцать","сорок","пятьдесят","шестьдесят","семьдесят","восемьдесят","девяносто"},
        {"","сто","двести","триста","четыреста","пятьсот","шестьсот","семьсот","восемьсот","девятьсот"},
        {"","одна","две","три","четыре","пять","шесть","семь","восемь","девять"},
        {"","десять","двадцать","тридцать","сорок","пятьдесят","шестьдесят","семьдесят","восемьдесят","девяносто"},
        {"","сто","двести","триста","четыреста","пятьсот","шестьсот","семьсот","восемьсот","девятьсот"},
        {"","один","два","три","четыре","пять","шесть","семь","восемь","девять"},
        {"","десять","двадцать","тридцать","сорок","пятьдесят","шестьдесят","семьдесят","восемьдесят","девяносто"},
        {"","сто","двести","триста","четыреста","пятьсот","шестьсот","семьсот","восемьсот","девятьсот"},
        {"","один","два","три ","четыре","пять","шесть","семь","восемь","девять"}};
 
    //массив окончаний
    std::string termination[10][10]={
        {"","","","тысяч","","","миллионов","","","миллиардов"},
        {"","","","тысяча","","","миллион","","","миллиард"},
        {"","","","тысячи","","","миллиона","","","миллиарда"},
        {"","","","тысячи","","","миллиона","","","миллиарда"},
        {"","","","тысячи","","","миллиона","","","миллиарда"},
        {"","","","тысяч","","","миллионов","","","миллиардов"},
        {"","","","тысяч","","","миллионов","","","миллиардов"},
        {"","","","тысяч","","","миллионов","","","миллиардов"},
        {"","","","тысяч","","","миллионов","","","миллиардов"},
        {"","","","тысяч","","","миллионов","","","миллиардов"}};
 
    std::string dec[10]={"десять","одиннадцать","двенадцать","тринадцать","четырнадцать","пятнадцать","шестнадцать","семнадцать","восемнадцать","девятнадцать"};
    std::string result;
 
    if (!numb){
        result="ноль";
        return result;
    }
    int n1=numb;
    int cnt=0;
 
    //подсчет количесива цифр в числе
    while (numb){
        numb/=10;
        ++cnt;
    }
    int celoe=0;
 
    //перевод
    while (n1){
        if (!((cnt+1) % 3)){
            if ((n1/osn[cnt])==1){
                    n1%=osn[cnt];
                    --cnt;
                    celoe=n1/osn[cnt];
                    n1%=osn[cnt];
                    result+=dec[celoe];
                --cnt;
                if (!(cnt % 3))
                    result+=" "+termination[0][cnt]+" ";
            }
            if (!cnt) break;
        }
        celoe=n1/osn[cnt];
        n1%=osn[cnt];
        result+=basis[cnt][celoe]+" ";
        --cnt;
        if (!(cnt % 3))
            result+=termination[celoe][cnt]+" ";
    }
 
    return result;
}
Кто-то на форуме делал, не мое, дабы не нарушать авторские права xD
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.08.2013, 16:04
Привет! Вот еще темы с ответами:

Дано предложение с несколькими словами, надо напечатать слова начинающиеся с буквы A - C++
Дано предложение с нескольким словам надо печатать слова с главной буквой A

Записать число словами - C++
У меня такой вопрос: Как целое число до 10 000 записать словами??? например вводим с клавиатуры 123 а она выводит &quot;сто двадцать три&quot; ...

Вывести словами введенное число - C++
Допустим пользователь вводит любое число от 1 до 9999 Каким образом можно реализовать вывод числа по словам (кроме свитча)?

10-тичное число словами на русском языке в 8-ми и 10-ной системах - C++
Добрый день всем. Подскажите как лучше решить задание, или может уже кто-то делал подобное: Задание: необходимо вывести введенное...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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