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

перевод из числа в прописной вид не массив - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Шаблонный класс, принимающий InputIterators в конструкторе http://www.cyberforum.ru/cpp-beginners/thread772944.html
Есть Stack.h #ifndef _STACK_H_ #define _STACK_H_ #include <cstddef> #include <iterator> template <class T> class Stack { public:
C++ Определить количество натуральных трехзначных чисел, сумма цифр которых равна заданному числу N 1. Определить количество натуральных трехзначных чисел, сумма цифр которых равна заданному числу N. http://www.cyberforum.ru/cpp-beginners/thread772925.html
C++ сумма элементов ряда
http://imghost.tambovnet.org/thumbs/f49a6abc43ed3f52cde40d5913765d56.jpg
Как запретить вызов конструктора 2-ой раз C++
Как можно сделать чтобы конструктор не вызывался 2-раз #include <iostream> #include "Model.h" int main() {
C++ Программирование матричных операций. Упорядочить элементы первой половины вектора X по возрастанию абсолютных значений http://www.cyberforum.ru/cpp-beginners/thread772876.html
Разработать алгоритм и программу на языке С++ решения следующих взаимосвязанных задач: 1) рассчитать элементы квадратной матрицы A = (aij ), i,j = 0,1,2,...,n-1 по заданной формуле; 2) сформировать из матрицы A элементы вектора X = (xi), i = 0,1,2,...,n-1 по заданному правилу; 3) провести заданное упорядочение элементов матрицы А или вектора Х. 3) упорядочить элементы первой...
C++ Code Blocks и OpenCV подскажите хоть одну рабочую ссылку на установку OpenCV в codeBlocks ? пробую http://myncbi.blogspot.com/2012/04/how-to-configure-codeblocks-for-opencv.html выкидывает ошибку (рис) OpenCV2.3 CodeBlocks 12.11 подробнее

Показать сообщение отдельно
Евгений89
99 / 99 / 9
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2

перевод из числа в прописной вид не массив - C++

27.01.2013, 18:36. Просмотров 653. Ответов 4
Метки (Все метки)

Здравствуйте товарищи!Нужна ваша помощь в исправлении кода.
Что нужно мне изменить в коде что бы при вводе числа например 1234.34 выводило одна тысяча двести тридцать четыре доллара
тридцать четыре цента
при этом переводиться должны числа от 0 до 999 999 999
С указателями и строками пока не очень дружу
Класс
C++
1
string
препод запретил , как и функции для работы со строками и символами(strlen,strcpy,и тд)
а раз запретили я думаю что через массивы не получится
он у меня какой то кривой получился

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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#include <iostream>
#include <windows.h>
using namespace std;
//функция определения длины строки
int length(char *str){
    int i=0;
    while(str[i]++){
        i++;
    }
    return i;
}
//функция перевода из числа в прописной вид
int strtoint(int number){
    int dollar,cent;
    bool znak;
    char *str="",*str1="",*str2="",*str3="";
    char *str4="",*str5="",*str6="",*str7="";
    if(number=' ') str++;
    if(number='+') znak= true;
    if(number='-') znak = false;
 
 
switch(number/1000000000){
case 1:str="миллиард";break;
case 2:str="миллиарда";break;
case 3:str="миллиарда";break;
case 4:str="миллиарда";break;
case 5:str="миллиардов";break;
case 6:str="миллиардов";break;
case 7:str="миллиардов";break;
case 8:str="миллиардов";break;
case 9:str="миллиардов";break;
}
 
switch(number/1000000){
case 1:str1="миллион";break;
case 2:str1="миллиона";break;
case 3:str1="миллиона";break;
case 4:str1="миллиона";break;
case 5:str1="миллионов";break;
case 6:str1="миллионов";break;
case 7:str1="миллионов";break;
case 8:str1="миллионов";break;
case 9:str1="миллионов";break;
}
 
switch(number/1000){
case 1:str2="тысяча";break;
case 2:str2="тысячи";break;
case 3:str2="тысячи";break;
case 4:str2="тысячи";break;
case 5:str2="тысяч";break;
case 6:str2="тысяч";break;
case 7:str2="тысяч";break;
case 8:str2="тысяч";break;
case 9:str2="тысяч";break;
}
 
switch(number/100){
case 1:str3="сто";break;
case 2:str3="двести";break;
case 3:str3="триста";break;
case 4:str3="четыреста";break;
case 5:str3="пятьсот";break;
case 6:str3="шестьсот";break;
case 7:str3="семьсот";break;
case 8:str3="восемьсот";break;
case 9:str3="девятьсот";break;
}
if(number/10){
switch(number){
case 1:str4="десять";break;
case 2:str4="двадцать";break;
case 3:str4="тридцать";break;
case 4:str4="сорок";break;
case 5:str4="пятьдесят";break;
case 6:str4="шестьдесят";break;
case 7:str4="семьдесят";break;
case 8:str4="восемьдесят";break;
case 9:str4="девяносто";break;
}
}
else{
switch((number/10)%10){
case 1:str4="одиннацать";break;
case 2:str4="двенадцать";break;
case 3:str4="тринадцать";break;
case 4:str4="четырнадцать";break;
case 5:str4="пятнадцать";break;
case 6:str4="шестнадцать";break;
case 7:str4="семнадцать";break;
case 8:str4="восемнадцать";break;
case 9:str4="девятнадцать";break;
}
}
switch(number%10){
case 1:str5="один";break;
case 2:str5="два";break;
case 3:str5="три";break;
case 4:str5="четыре";break;
case 5:str5="пять";break;
case 6:str5="шесть";break;
case 7:str5="семь";break;
case 8:str5="восемь";break;
case 9:str5="девять";break;
}
dollar=number%10;
switch(dollar){
case 1:str6="доллар";break;
case 2:str6="доллара";break;
case 3:str6="доллара";break;
case 4:str6="доллара";break;
case 5:str6="долларов";break;
case 6:str6="долларов";break;
case 7:str6="долларов";break;
case 8:str6="долларов";break;
case 9:str6="долларов";break;
}
cent=number%10;
switch(cent){
case 1:str7="цент";break;
case 2:str7="цента";break;
case 3:str7="цента";break;
case 4:str7="цента";break;
case 5:str7="центов";break;
case 6:str7="центов";break;
case 7:str7="центов";break;
case 8:str7="центов";break;
case 9:str7="центов";break;
}
cout<<str1<<" "<<str2<<" "<<str3<<" "<<str4<<" "<<str5<<" "<<str6<<" "<<str7;
 
return number;
}
 int main(){
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
 int number; //число
do{
cout<<"Введите числовое значение:\n";
cin>>number;
if(number>999999999||number<0) cout<<"недопустимые значения!!!Повторите ввод\n";
}while(number>999999999||number<0);
cout<<"Вывод суммы прописью:\n";
cout<<strtoint(number);
 
return 0;
 }
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru