Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
5 / 5 / 0
Регистрация: 12.03.2015
Сообщений: 103
1

Напечатать данное натуральное число русскими словами

28.03.2015, 23:30. Просмотров 1842. Ответов 6
Метки нет (Все метки)

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

помогите пожалуйста написать код на Visual C++!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.03.2015, 23:30
Ответы с готовыми решениями:

Напечатать число русскими словами
дано натуральное число n. Напечатать это число русскими словами (сто пять, двести сорок один...)

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

Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ
Вобщем,если не сложно,именно саму функцию помочь написать,ибо я просто не могу понять:) ...

Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке
1) Заменить данное натуральное число на число, которое получается из исходного записью его цифр в...

6
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
29.03.2015, 00:27 2
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
#include <iostream>
#include <string>
 
using namespace std;
 
const string ones[]     = {"один", "два", "три", "четыре", "пять",
                      "шесть", "семь", "восемь", "девять"};
const string tens[]     = {"десять", "двадцать", "тридцать", "сорок", "пятьдесят",
                      "шестьдесят", "семьдесят", "восемьдесят", "девяносто"};
const string hundreds[] = {"сто", "двести", "триста", "четыреста", "пятьсот",
                          "шестьсот", "семьсот", "восемьсот", "девятьсот"};
 
string spell_it(int n)
{
    string res;
    if(n == 1000)
        res = "тысяча";
    if((n %= 1000) > 0)
    {
        if(n / 100 > 0)
            res = hundreds[n / 100 -1];
        if((n %= 100) > 0)
        {
            if(n / 10 > 0)
                res = res + " " + tens[n / 10 -1];
            if((n %= 10) > 0)
                res = res + " " + ones[n -1];
        }
    }
    return res;
}
 
int main()
{
    int number = 0;
    
    cout << "Enter natural number: ";
    cin >> number;
    cout << "Russian spelling: " << spell_it(number) << endl;
}
1
55 / 55 / 39
Регистрация: 19.03.2015
Сообщений: 167
29.03.2015, 00:33 3
не правильный код.
0
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
29.03.2015, 00:35 4
грязные инсинуации
0
55 / 55 / 39
Регистрация: 19.03.2015
Сообщений: 167
29.03.2015, 00:37 5
инсинуации не причем. как напечатает этот код например число 615?
0
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
29.03.2015, 00:58 6
а ну да) я и забыл про такие числа как одиннадцать и т.д.

Добавлено через 1 минуту
добавить их в проверку думаю не так уж сложно будет. а мне править лень)

Добавлено через 17 минут
добавим все же. а то нехорошо как то
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
#include <iostream>
#include <string>
 
using namespace std;
 
const string ones[] = {"один", "два", "три", "четыре", "пять",
                       "шесть", "семь", "восемь", "девять", "",
                        "одиннадцать", "двенадцать", "дринадцать",
                        "четырнадцать", "пятнадцать", "шестнадцать",
                        "семнадцать", "восемнадцать", "девятнадцать"};
const string tens[] = {"десять", "двадцать", "тридцать", "сорок", "пятьдесят",
                       "шестьдесят", "семьдесят", "восемьдесят", "девяносто"};
const string hundreds[] = {"сто", "двести", "триста", "четыреста", "пятьсот",
                           "шестьсот", "семьсот", "восемьсот", "девятьсот"};
 
string
spell_it(int n)
{
    string res;
    if(n == 1000)
        res = "тысяча";
    if((n %= 1000) > 0)
    {
        if(n / 100 > 0)
            res = hundreds[n / 100 - 1];
        if((n %= 100) > 0)
        {
            if(n < 20 && n != 10)
                res = res + " " + ones[n - 1];
            else
            {
                if(n / 10 > 0)
                    res = res + " " + tens[n / 10 - 1];
                if((n %= 10) > 0)
                    res = res + " " + ones[n - 1];
            }
        }
    }
    return res;
}
 
int
main()
{
    int number = 0;
 
    cout << "Enter natural number: ";
    cin >> number;
    cout << "Russian spelling: " << spell_it(number) << endl;
}
1
5 / 5 / 0
Регистрация: 12.03.2015
Сообщений: 103
29.03.2015, 12:42  [ТС] 7
спасибо за помощь!!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.03.2015, 12:42

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Операции над строками: Записать данное число русскими словами
14. Дано натуральное число n (n&lt;=1000 ). Записать это число русскими словами (семнадцать, двести...

Напечатать число русскими словами
дано натуральное число n(n&lt;=1000). напечатать это число русскими словами.(например: двести сорок...

Дано натуральное число. Напечатать это число словами
Операции со строковыми данными. Дано натуральное число n (n&lt;=1000). Напечатать это число словами...

Записать число русскими словами
Задано натуральное число n (n&lt;=20). Записать это число русскими словами (семнадцать, три, десять) и...


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

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

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