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

Вивод числа на экран, в письменном виде. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 5.00
[AH-1Z]
 Аватар для [AH-1Z]
6 / 6 / 0
Регистрация: 29.12.2009
Сообщений: 76
29.12.2009, 23:40     Вивод числа на экран, в письменном виде. #1
Вообще, как сделать, что бы любое число, до 1000, выводилось на экран словами ?? Тоисть, 10 - desyatb, 150 sto pyatdesyat.. ?? зарание спасибо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,307
30.12.2009, 00:20     Вивод числа на экран, в письменном виде. #2
http://vbrussian.com/Article.asp?ID=27#trc19
[AH-1Z]
 Аватар для [AH-1Z]
6 / 6 / 0
Регистрация: 29.12.2009
Сообщений: 76
30.12.2009, 00:26  [ТС]     Вивод числа на экран, в письменном виде. #3
Цитата Сообщение от CheshireCat Посмотреть сообщение
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
#include <iostream>
using namespace std;
void main ()
 
{
float x;
cout<<"Please enter your digit \n"
cin>>x;
 
numb1(0) = "" 
    numb1(1) = "один " 
    numb1(2) = "два " 
    numb1(3) = "три " 
    numb1(4) = "четыре " 
    numb1(5) = "пять " 
    numb1(6) = "шесть " 
    numb1(7) = "семь " 
    numb1(8) = "восемь " 
    numb1(9) = "девять " 
    numb1(10) = "десять " 
    numb1(11) = "одиннадцать " 
    numb1(12) = "двенадцать " 
    numb1(13) = "тринадцать " 
    numb1(14) = "четырнадцать " 
    numb1(15) = "пятнадцать " 
    numb1(16) = "шестнадцать " 
    numb1(17) = "семнадцать " 
    numb1(18) = "восемнадцать " 
    numb1(19) = "девятнадцать " 
    numb2(0) = "" 
    numb2(1) = "" 
    numb2(2) = "двадцать " 
    numb2(3) = "тридцать " 
    numb2(4) = "сорок " 
    numb2(5) = "пятьдесят " 
    numb2(6) = "шестьдесят " 
    numb2(7) = "семьдесят " 
    numb2(8) = "восемьдесят " 
    numb2(9) = "девяносто " 
    numb3(0) = "" 
    numb3(1) = "сто " 
    numb3(2) = "двести " 
    numb3(3) = "триста " 
    numb3(4) = "четыреста " 
    numb3(5) = "пятьсот " 
    numb3(6) = "шестьсот " 
    numb3(7) = "семьсот " 
    numb3(8) = "восемьсот " 
    numb3(9) = "девятьсот " 
 
cout<<x;
 
}
вот так?? а то запутался, с выводом на экран.
breeve
 Аватар для breeve
73 / 73 / 14
Регистрация: 01.08.2009
Сообщений: 177
30.12.2009, 10:10     Вивод числа на экран, в письменном виде. #4
по ссылке программа вообще на визуал-бейсике.. Поэтому то что сделал это не правильно..
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
#include <iostream>
#include <cstdio>
using namespace std;
 
string to_string(int val) {
 char buff[32];
 sprintf(buff,"%d",val);
 return string(buff);
}
 
 
int main (void)
{
    unsigned int x;
    int len; 
    string str;
    while(true)
{
    cout<<"Введите ваше число: \n";
    cin>>x;
 
    string one[] = {"","один ","два ","три ","четыре ","пять ","шесть ","семь ","восемь ","девять ",
                  "десять ","одиннадцать ","двенадцать ","тринадцать ","четырнадцать ","пятнадцать ",
                  "шестнадцать ","семнадцать ","восемнадцать ","девятнадцать " };
    string ten[] = {"","", "двадцать ", "тридцать ", "сорок ", "пятьдесят ", "шестьдесят ", "семьдесят ", 
                  "восемьдесят ", "девяносто " };
    string hundred[] = {"","сто ","двести ", "триста ", "четыреста ", "пятьсот ", "шестьсот ", 
                      "семьсот ", "восемьсот ", "девятьсот " };
 
    
    str = to_string(x);
    len = (int)str.length();
    switch(len)
{
    case 1:
        cout << one[x];
        break;
    case 2:
        label:
        if(x < 20)
        {
            cout << one[x];
        }
        else if(x < 100)
        {
            if((x%10)==0)cout << ten[x/10];
            else cout << ten[x/10] << one[x%10];
        }
        break;
    case 3:
        cout << hundred[x/100];
        x -= (x/100)*100;
        goto label;
        
}
    cout<< "\n";
} 
}
Работает от 1 и до 999
Yandex
Объявления
30.12.2009, 10:10     Вивод числа на экран, в письменном виде.
Ответ Создать тему
Опции темы

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