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

Дописать "рубль" в правильной форме - C++

Восстановить пароль Регистрация
 
Чеченец
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 37
15.11.2012, 22:11     Дописать "рубль" в правильной форме #1
Написать программу которая после введенного с клавиатуры числа ( в диапазоне от 1 до 999), обозначающего денежную единицу,дописывает "рубль" в правильной форме. Например,12 рублей,21 рубль.

 Комментарий модератора 
Запрещено размещать тему в нескольких разделах одновременно (кросспостинг), а также дублировать тему в одном разделе.
Правила форума
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ryuk
 Аватар для Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 869
15.11.2012, 22:54     Дописать "рубль" в правильной форме #2
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
#include <stdio.h>
#include <conio.h>
#include <process.h>
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int k;
    cout << "Введите число от 1 до 999: ";
    cin >> k;
    switch(k%10)
    {
     case 0: case 5: case 6: case 7: case 8: case 9: cout << "рублей\n";
     break;
     case 1: cout << "рубль\n";
     break;
     case 2: case 3: case 4: cout << "рубля\n";
     break;
    }
    system("pause");
    return 0;   
}
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
15.11.2012, 22:56     Дописать "рубль" в правильной форме #3
Ryuk, 11 рублей, 12 рублей, 13 рублей...
Ryuk
 Аватар для Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 869
15.11.2012, 23:02     Дописать "рубль" в правильной форме #4
I.M., так в чем проблема?

Добавлено через 1 минуту
забыл ограничитель ввода
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
#include <stdio.h>
#include <conio.h>
#include <process.h>
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int k;
    cout << "Введите число от 1 до 999: ";
    cin >> k;
    while ( (k > 999) | (k == 0) )
    {
        cout << "Введено недопустимое значение. Повторите ввод!\n";
        cin >> k;
    }
 
    switch(k%10)
    {
     case 0: case 5: case 6: case 7: case 8: case 9: cout << "рублей\n";
     break;
     case 1: cout << "рубль\n";
     break;
     case 2: case 3: case 4: cout << "рубля\n";
     break;
    }
    system("pause");
    return 0;   
}
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
15.11.2012, 23:03     Дописать "рубль" в правильной форме #5
Ryuk, я думал, вы догадаетесь.
Ваша программа выдаст
11 рубль
12 рубля
13 рубля
14 рубля
что неверно
GoodLife
9 / 9 / 3
Регистрация: 23.10.2012
Сообщений: 167
15.11.2012, 23:06     Дописать "рубль" в правильной форме #6
Цитата Сообщение от I.M. Посмотреть сообщение
Ryuk, 11 рублей, 12 рублей, 13 рублей...
В том-то и проблема что будет
11 рубль, 12 рубля, 13 рубля =) хех, прям как Жамшут и Равшан
Ryuk
 Аватар для Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 869
15.11.2012, 23:13     Дописать "рубль" в правильной форме #7
I.M., не могу придумать, как исправить
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
15.11.2012, 23:15     Дописать "рубль" в правильной форме #8
Ryuk, изящно их в свитч не добавить. просто сделайте под проверку перед свитчом
GoodLife
9 / 9 / 3
Регистрация: 23.10.2012
Сообщений: 167
15.11.2012, 23:18     Дописать "рубль" в правильной форме #9
Как вариант перед свич оператор поставить типа
C++
1
if ((k>10)&&(k<20)){cout << "рублей\n";system("pause");return 0;}
Добавлено через 2 минуты
I.M., обновляю пусто, написал, отправил, уже поздно, я прям мисетр дубль...
Ryuk
 Аватар для Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 869
15.11.2012, 23:24     Дописать "рубль" в правильной форме #10
GoodLife, тогда для каждой сотни придется писать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2012, 23:41     Дописать "рубль" в правильной форме
Еще ссылки по теме:

Дописать слово в правильной форме C++
C++ Как возможно выйти в инструкции switch в начало самой инструкции при нажатии "не правильной" кнопки
Нужно сделать так, чтобы при вводе числа, выводило "рублей" или "рубль" C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
GoodLife
9 / 9 / 3
Регистрация: 23.10.2012
Сообщений: 167
15.11.2012, 23:41     Дописать "рубль" в правильной форме #11
блин, так думать не охота.... ну у меня только некрасивый вариант типа
C++
1
2
int k2=k/10;
if((k2>10?k2%10;k2)==1){cout << "рублей\n";system("pause");return 0;}
Yandex
Объявления
15.11.2012, 23:41     Дописать "рубль" в правильной форме
Ответ Создать тему
Опции темы

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