Страница 1 из 1

Перевод числа в словесное представление

Добавлено: 04 мар 2015, 04:00
shadevskiy
Если я пишу 11, то он выдает одиннадцать и ползет дальше выдавая десять. Как я понимаю, нужно ввести цикл, чтобы потом после каждого написать "break". Можно поставить после чисел от 11 до 19 "return" , но тогда он будет выполнять их, но не выполнять последующие.
Вот код:

Код: Выделить всё

#include
#include
#include
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
setlocale(0," ");
int n;
cout << ("Введите натуральное число : ");
cin >> n;
if(n==0)
{
cout << "нуль";
system ("pause >> void");
return 0;
}
{
for (int n=11 ; n <20 ;n++);
{
if (n==11)
cout <<"Одиннадцать";
if (n==12)
cout <<"Двенадцать";
if (n==13)
cout <<"Тринадцать";
if (n==14)
cout <<"Четырнадцать";
if (n==15)
cout <<"Пятнадцать";
if (n==16)
cout <<"Шестнадцать";
if (n==17)
cout <<"Семнадцать";
if (n==18)
cout <<"Восемнадцать";
if (n==19)
cout <<"Девятнадцать";
}
}
//тысяч
switch (n/1000)
{
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;
}
//сотен
switch ((n/100)%10)
{
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;
}
//десятков
switch ((n/10)%10)
{
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;
}
//единиц
switch (n%10)
{
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;
}
cout << (" \n Пожалуйста, введите натуральное число ");
system ("pause >> void");
return 0;
}

Re: Как создать цикла в коде

Добавлено: 04 мар 2015, 11:23
Romeo
А в чём смысл программы вообще? Я что-то не могу понять, что она должна делать. Написать буквенный эквивалент введённого числа? Если так, то зачем вообще цикл? Он же мало того, что выведет все слова от "одиннадцать" до "девятнадцать", так ещё и затрёт значение n, которое ввёл пользователь, то есть вообще глупость получается, а не код.

Почему вот так не сделать?

Код: Выделить всё

if (n == 0)
{
   cout << "ноль";
   system ("pause >> void");
   return 0;
}

if (n < 0)
{
   cout << "минус ";
   n = -n;
}

//тысяч
switch (n/1000)
{
   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;
}

//сотен
switch ((n/100)%10)
{
   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;
}

//десятков
switch ((n/10)%10)
{
   case 1:
   { 
      switch (n%10)
      {
         case 0: cout << "десять"; break;
         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;
      }
      system ("pause >> void");
      return 0;
   }
   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;
}

//единиц
switch (n%10)
{
   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;
}

system ("pause >> void");
return 0;

Re: Перевод числа в словесное представление

Добавлено: 16 мар 2015, 17:37
alex123456
Компания Микс Сервис производит доставку и монтаж рольставни, ворот, шлагбаумов, автоматического оборудования разного направления. Мы создаем и ставим изделия из ПВХ и алюминия, жалюзи, горизонтальные пристекольная система Венусобычные вертикальные и обычные, мультифактурные горизонтальные жалюзи
Основными направлениями нашей работы являются: монтаж и поставка рольставен и ворот: механических, распашных, автоматических, сдвижных, рулонных, кованных, секционных,. Мы являемся представителем таких фирм, как: «Алеко»,«DoorHan», «Алютех»

http://mix-service44.ru/