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

Помощь с переводом - C++

Восстановить пароль Регистрация
 
HeqpuJIuM
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 25
24.01.2012, 23:52     Помощь с переводом #1
Приветствую всех посетителей данного форума. Если кому не сложно помогите немного переделать задачу для С++, условие звучит так: "Дано целое число в диапазоне 100 – 999. Вывести строку — словесное описание данного числа, например: 256 — "двести пятьдесят шесть", 814 — "восемьсот четырнадцать".
Я уже был в теме преобразование числа в числительное, но не разобрался, там в С и как то сильно усложнено... я нашёл решение этой задачи, но оно написано на другом языке, кажется на BASiC'e, вот код:

PureBasic
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
$iN = InputBox("Введите", "Число")            ;Ввод числа
 
;Определим по первой цифре
Switch StringMid($iN, 1, 1)
Case 1
    $sA = 'сто '
Case 2
    $sA = 'двести '
Case 3
    $sA = 'триста '
Case 4
    $sA = 'четыреста '
Case 5
    $sA = 'пятьсот '
Case 6
    $sA = 'шестьсот '
Case 7
    $sA = 'семьсот '
Case 8
    $sA = 'восемьсот '
Case 9
    $sA = 'девятьсот '
EndSwitch
 
If (StringMid($iN, 2, 2) > 9) And (StringMid($iN, 2, 2) < 20) Then
    ;По двум последним цифрам
    Switch StringMid($iN, 2, 2)
    Case 10
        $sA &= 'десять'
    Case 11
        $sA &= 'одиннадцать'
    Case 12
        $sA &= 'двенадцать'
    Case 13
        $sA &= 'тринадцать'
    Case 14
        $sA &= 'четырнадцать'
    Case 15
        $sA &= 'пятнадцать'
    Case 16
        $sA &= 'шестнадцать'
    Case 17
        $sA &= 'семнадцать'
    Case 18
        $sA &= 'восемнадцать'
    Case 19
        $sA &= 'девятнадцать'
    EndSwitch
Else
    ;По второй цифре
    Switch StringMid($iN, 2, 1)
    Case 2
        $sA &= 'двадцать '
    Case 3
        $sA &= 'тридцать '
    Case 4
        $sA &= 'сорок '
    Case 5
        $sA &= 'пятьдесят '
    Case 6
        $sA &= 'шестьдесят '
    Case 7
        $sA &= 'семьдесят '
    Case 8
        $sA &= 'восемьдесят '
    Case 9
        $sA &= 'девяносто '
    EndSwitch
 
    ;По последней цифре
    Switch StringMid($iN, 3, 1)
    Case 1
        $sA &= 'один'
    Case 2
        $sA &= 'два'
    Case 3
        $sA &= 'три'
    Case 4
        $sA &= 'четыре'
    Case 5
        $sA &= 'пять'
    Case 6
        $sA &= 'шесть'
    Case 7
        $sA &= 'семь'
    Case 8
        $sA &= 'восемь'
    Case 9
        $sA &= 'девять'
    EndSwitch
EndIf
 
MsgBox(0, "Результат", $sA)
Не знаю, как переписать вот эти строчки под С++:
1. Switch StringMid($iN, 1, 1)
2. Switch StringMid($iN, 2, 2)
3. Switch StringMid($iN, 2, 1)
4. Switch StringMid($iN, 3, 1)

Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2012, 23:52     Помощь с переводом
Посмотрите здесь:

C++ Работа с переводом элемента строки в число
C++ Помощь
Помощь по С++. C++
Не работает цикл с переводом типов C++
C++ Проблемы с переводом строки в число (по книге Лафоре "ООП в С ++ ")
Помощь С++ C++
подсчитать в заданной строке число слов, которые могут быть разделены пробелом, табуляцией, переводом строки C++
Можно потоком читать файл, если он может с любым переводом строки? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cyberobot
 Аватар для cyberobot
15 / 15 / 1
Регистрация: 01.09.2011
Сообщений: 66
25.01.2012, 11:47     Помощь с переводом #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
#include <iostream>
int main()
{
    char num[4];
    cin>>num;
    switch(num[0])
    {
             case '1':
                        cout<<"сто ";
             break;
             
             case '2':
                        cout<<"двести ";
             break;
              //и так далее до 9 
    };
    switch(num[1])
    {
             case '1':
                        switch(num[2])
                        {
                                 case '1':
                                            cout<<"одиннадцать ";
                                 break;
                                 case '2':
                                            cout<<"двенадцать ";
                                 break;
                                //и так от 0 до 9
                         };
             //и так от 0 до 9
      }; 
}
HeqpuJIuM
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 25
25.01.2012, 23:20  [ТС]     Помощь с переводом #3
Символьный массив... не подумал я что-то, что так можно... спасибо большое!
Yandex
Объявления
25.01.2012, 23:20     Помощь с переводом
Ответ Создать тему
Опции темы

Текущее время: 23:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru