Другие языки программирования и технологии

Помогите!! C ++ Вводится число от 1...999. Вывести данное число на естественном языке. Например, 52 – пятьдесят два.

Не догоняю как написать прогу в Microsoft Visual C++ 2010. Условие: Вводится число от 1...999. Вывести данное число на естественном языке. Например, 52 – пятьдесят два.
#include <iostream>
#include <tchar.h>
#include <windows.h>
#include <locale>
#include <conio.h>

using namespace std;

void main()
{
system("color 9B");
setlocale(LC_CTYPE,"Russian_Russia.1251");
::SetConsoleTitleW(_T("Прописные числа от 1 до 999"));

do
{
do
{
short number, temp;

cout << endl << " Ведите целое число от 1 до 999: ";
cin >> number;

temp = number;

if (temp > 999 || temp < 1)
{
cout << endl << " Недопустимое число! ";
break;
}

do
{
if (temp < 1000 && temp > 99)
{
temp = number / 100 * 100;
number = number - temp;
}
else if (temp < 100 && temp > 19)
{
temp = number / 10 * 10;
number = number - temp;
}

switch(temp)
{
case 1: cout << " один"; break;
case 2: cout << " два"; break;
case 3: cout << " три"; break;
case 4: cout << " четыре"; break;
case 5: cout << " пять"; break;
case 6: cout << " шесть"; break;
case 7: cout << " семь"; break;
case 8: cout << " восемь"; break;
case 9: cout << " девять"; break;
case 10: cout << " десять"; break;
case 11: cout << " одинадцать"; break;
case 12: cout << " двенадцать"; break;
case 13: cout << " тринадцать"; break;
case 14: cout << " четырнадцать"; break;
case 15: cout << " пятнадцать"; break;
case 16: cout << " шестнадцать"; break;
case 17: cout << " семнадцать"; break;
case 18: cout << " восемнадцать"; break;
case 19: cout << " девятнадцать"; break;
case 20: cout << " двадцать"; break;
case 30: cout << " тридцать"; break;
case 40: cout << " сорок"; break;
case 50: cout << " пятьдесят"; break;
case 60: cout << " шестьдесят"; break;
case 70: cout << " семьдесят"; break;
case 80: cout << " восемьдесят"; break;
case 90: cout << " девяносто"; break;
case 100: cout << " сто"; break;
case 200: cout << " двести"; break;
case 300: cout << " триста"; break;
case 400: cout << " четыреста"; break;
case 500: cout << " пятьсот"; break;
case 600: cout << " шестьсот"; break;
case 700: cout << " семьсот"; break;
case 800: cout << " восемьсот"; break;
case 900: cout << " девятьсот"; break;
}

if (temp < 20) break;

if (number < 1000 || number > 99) temp = number - number / 100 * 100;
}
while (number >= 0);

_getch();
system("cls");
}
while (true);

_getch();
system("cls");
}
while (true);
}
ММ
Марат Мурзаев
78 544
Лучший ответ
ЗАБИТЬ все 999 вариантов!

шутка... .
узнать длину строки и сделать вывод о разрядности. читать строку посимвольно и выводить по одному слову. ..на английском лучше=)
int a;/твое число
int b,c;
if (a/100>0) //три разряда, вывод сотен
{
b=a/100;
if (b==1)
{
printh("сто");
}
if (b==2)
{
printh("двести");
}
//так же для всех числе
}
if (a/10>1)//два разряда. вывод десяков
{
c=a/10;
if (c==2)
{
printh("двадцать");
}

c=a/10;
if (c==3)
{
printh("тридцать");
}
//итд до девяносто
}

if (a/10!=1)
{
if (a==0)
{
printh("ноль");
}
if (a==1)
{
printh("один");
}
//так же для всех числе
}
if (a/10==1)//исключение первый десяток
{
if (a==11)
{
printh("одинадцать");
}
if (a==12)
{
printh("двенадцать");
}
//так же до девяднадцати
}

Похожие вопросы