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

Записать целое число буквами (можно ли упростить код?) - C++

Восстановить пароль Регистрация
 
ZarinZomanu4
 Аватар для ZarinZomanu4
5 / 5 / 0
Регистрация: 27.05.2013
Сообщений: 60
20.06.2014, 22:09     Записать целое число буквами (можно ли упростить код?) #1
Здравствуйте помогите упростить код.
Условие:
Напишите программу которая вводит целое число, не превышающее 100, и выводит его прописью, например,
21→"двадцать один".
Мой код
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
#include <iostream>
using namespace std;
int main ()
{
    int a,b,c ;
    cin>>a;
        if (a<100)
        {   b=a/10;
            c=a%10;
        if (b==0)
        switch (c)
        {case 0:
        cout<< "zero";
        break;
        case 1:
        cout<< "one";
        break;
        case 2:
        cout<< "two";
        break;  
        case 3:
        cout<< "Three";
        break;
        case 4:
        cout<< "four";
        break;
        case 5:
        cout<< "five";
        break;
        case 6:
        cout<< "six";
        break;
        case 7:
        cout<< "Seven";
        break;
        case 8:
        cout<< "eight";
        break;
        case 9:
        cout<< "nine";
        break;}
        if (b==1)
        switch (c)
        {case 0:
        cout<< "ten";
        break;
        case 1:
        cout<< "eleven";
        break;
        case 2:
        cout<< "twelve";
        break;  
        case 3:
        cout<< "thirteen";
        break;
        case 4:
        cout<< "fourteen";
        break;
        case 5:
        cout<< "fifteen";
        break;
        case 6:
        cout<< "sixteen";
        break;
        case 7:
        cout<< "seventeen";
        break;
        case 8:
        cout<< "eighteen";
        break;
        case 9:
        cout<< "nineteen";
        break;}     
        /*и так далее*/
        }
        else 
        cout<<"Error"<<endl;
 
        return 0;
}
Мозг понимает что можно как то сделать через метки, но практики не хватает это реализовать.

Добавлено через 8 минут
Бред написал.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2014, 22:09     Записать целое число буквами (можно ли упростить код?)
Посмотрите здесь:

Дано целое число N (> 0). Найти сумму N2 + (N + 1)2+ (N + 2)2+ … + (2*N)2 (целое число) C++
Дано вещественное число A и целое число N. Вывести A в степени N (код внутри) C++
C++ Составить функцию, которая, получив целое число определяет, уменьшается ли оно в целое число раз
Ввести с клавиатуры целое число n и записать в новый файл те слова, которые содержат n или больше согласных C++
C++ Если целое число М делится на целое число N, то на экран выводится частное от деления, в противном случае выводится сообщение
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5953 / 5558 / 1787
Регистрация: 18.12.2011
Сообщений: 14,204
Завершенные тесты: 1
20.06.2014, 22:34     Записать целое число буквами (можно ли упростить код?) #2
C++
1
2
3
4
char numbers[20][10]={"zero","one","two",...,"nineteen"};
int a;cin>>a;
if(a>19 || a<0)a=0;
cout<<numbers[a];
ZarinZomanu4
 Аватар для ZarinZomanu4
5 / 5 / 0
Регистрация: 27.05.2013
Сообщений: 60
20.06.2014, 22:50  [ТС]     Записать целое число буквами (можно ли упростить код?) #3
вот теперь более менее
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
119
120
121
122
123
124
#include <iostream>
using namespace std;
int main ()
{
    int a,b,c ;
    cin>>a;
        if (a<100)
        {   b=a/10;
            c=a%10;
        if (b==0)
        switch (c)
        {case 0:
        cout<< "zero ";
        break;
        case 1:
        cout<< "one ";
        break;
        case 2:
        cout<< "two ";
        break;  
        case 3:
        cout<< "Three ";
        break;
        case 4:
        cout<< "four ";
        break;
        case 5:
        cout<< "five ";
        break;
        case 6:
        cout<< "six ";
        break;
        case 7:
        cout<< "Seven ";
        break;
        case 8:
        cout<< "eight ";
        break;
        case 9:
        cout<< "nine ";
        break;}
        if (b>1)
        {switch (b)
        {case 2:
        cout<< "Twenty ";
        break;  
        case 3:
        cout<< "Thirty  ";
        break;
        case 4:
        cout<< "Forty  ";
        break;
        case 5:
        cout<< "Fifty  ";
        break;
        case 6:
        cout<< "Sixty  ";
        break;
        case 7:
        cout<< "Seventy  ";
        break;
        case 8:
        cout<< "Eighty  ";
        break;
        case 9:
        cout<< " Ninety  ";
        break;}
        switch (c)
        {case 1:
        cout<< "one "<<endl;
        break;
        case 2:
        cout<< "two ";
        break;  
        case 3:
        cout<< "Three ";
        break;
        case 4:
        cout<< "four ";
        break;
        case 5:
        cout<< "five ";
        break;
        case 6:
        cout<< "six " ;
        break;
        case 7:
        cout<< "Seven";
        break;
        case 8:
        cout<< "eight ";
        break;
        case 9:
        cout<< "nine ";
        break;}
        goto label ;
        }
        if (a==10)
        cout<< "ten ";
        else if (a==11)
        cout<< "eleven";
        else if (a==12)
        cout<< "twelve";
        else if (a==13)
        cout<< "thirteen";
        else if (a==14)
        cout<< "fourteen";
        else if (a==15)
        cout<< "fifteen";
        else if (a==16)
        cout<< "sixteen";
        else if (a==17)
        cout<< "seventeen";
        else if (a==18)
        cout<< "eighteen";
        else if (a==19)
        cout<< "nineteen";
        }
        else 
        {cout<<"Error"<<endl;}
        label :
 
        return 0;
}
Добавлено через 2 минуты
Цитата Сообщение от zss Посмотреть сообщение
char numbers[20][10]={"zero","one","two",...,"nineteen"};
Простите за непонимание, но в этой строчке нужно прописывать каждый элемент массива?
zss
Модератор
Эксперт С++
 Аватар для zss
5953 / 5558 / 1787
Регистрация: 18.12.2011
Сообщений: 14,204
Завершенные тесты: 1
21.06.2014, 08:26     Записать целое число буквами (можно ли упростить код?) #4
Цитата Сообщение от ZarinZomanu4 Посмотреть сообщение
прописывать каждый элемент массива?
Естественно
Yandex
Объявления
21.06.2014, 08:26     Записать целое число буквами (можно ли упростить код?)
Ответ Создать тему
Опции темы

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