Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
Orient1893
1 / 1 / 0
Регистрация: 11.05.2015
Сообщений: 35
1

Нужно сделать так, чтобы при вводе числа, выводило "рублей" или "рубль"

14.05.2015, 14:36. Просмотров 1053. Ответов 14
Метки нет (Все метки)

Начал решать задачу и засох на средине, не выходить формулу написать,если не сложно,подскажите) с с++ знаю пока что if,else и swith)
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
// Нужно сделать так,чтобы при вводе числа,выводило рублей или рубль.
#include <iostream>
#include <conio.h>
 
using std::cout;
using std::cin;
using std::endl;
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    int Ruble; // для данной задачи достаточно одной переменой
 
    cout << "Введите кол-во рублей: "; // вводим суму 
    cin >> Ruble;
 
    cout << "У вас " << Ruble << "  ";
 
    if (Ruble < 0) // если сума меньше нуля то, будет выводит комментарий который снизу 
    {
        cout << "Ваше значения отрицательное"; // т.е. этот
        _getch(); 
    }
а дальше,понимаю,что нужна формула,но не выходит её сотворить
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2015, 14:36
Ответы с готовыми решениями:

Через ООП: Дать для числа наименование: "рубль", "рубля", "рублей";
Помогите пожалуйста с задачей. Могу сделать ее просто, но надо через ООП и у...

Как сделать так, чтобы введенное с клавиатуры слово "helllo" в памяти сохранялось в виде "Hello".
Здравствуйте. Подскажите пожалауйста как сделать чтоб согда я вводу с...

Как сделать, так чтобы i и j можно было вводить самому "i" И "j" в цикле, есть программа
#include &lt;iostream&gt; using namespace std; int main() {int a=0,b=0; int i=0;...

Как сделать так, чтобы scanf в переменную double мог считывать с клавиатуры не только "0,01", но и "0.01"
Помогите!) Не знаю, искал, не нашел, возможно ли вообще. Чтобы и так и так...

Имеется строка "AAABBCCAA", нужно вывести на экран "3A2B2C2A", и так же сделать обратное действие
Доброго времени суток. Помогите организовать, желательно с примером, такую...

14
McGoblin
5 / 5 / 2
Регистрация: 18.05.2012
Сообщений: 61
14.05.2015, 14:58 2
Для решения тебе надо
1. Находим последнюю цифру.
Для определения последней цифры нужно использовать остаток от деления (пример 99%10 = 9, 137%10=7).
2. В зависимости от того какая последняя цифра.
Тут необходим реализовать через выбор выбор (switch), в зависимости какая последняя цифра он будет выводить рублей, рубль или рубля.
Естественно сout реализуй в switch для каждого из окончаний.
1
Черный мечник
48 / 49 / 34
Регистрация: 29.12.2012
Сообщений: 445
14.05.2015, 15:29 3
Напомнило программу про пирожки=)делал когда видеоруки смотрел....все тоже самое=)

Добавлено через 55 секунд
жалко что недели 2 назад все рограммы поудалял=)
0
jonson
235 / 208 / 84
Регистрация: 18.03.2010
Сообщений: 750
14.05.2015, 15:51 4
Цитата Сообщение от McGoblin Посмотреть сообщение
В зависимости от того какая последняя цифра.
алгоритм не годится
12 рублей
22 рубля
114 рублей
184 рубля

Не по теме:

а может не париться и написать так:

C++
1
2
3
cout << "Введите кол-во рублей: ";
cin >> Ruble;
cout << "У вас " << Ruble << "RUB";
:D

0
Kerry_Jr
Эксперт PHP
2211 / 2007 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
14.05.2015, 16:07 5
jonson, не годится, потому что для чисел от одиннадцати до девятнадцати включительно нужен отдельный расчет.

Добавлено через 13 минут
Orient1893,
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
#include <iostream>
#include <string>
 
int main()
{
   using std::cout;
   using std::cin;
   using std::endl;
   using std::cerr;
   using std::string;
 
   setlocale(LC_CTYPE, "Russian");
   
   int n, rest;
   cout << "Введите кол-во рублей: ";
   (cin >> n).get();
   if (n < 0)
   {
      cerr << "Неверное значение!" << endl;
      return -1;
   }
   string currency = " рубл";
   rest = n % 100;
   if (rest > 10 && rest < 20)
      currency += "ей";
   else
   {
      rest %= 10;
      if (rest == 1)
         currency += "ь";
      else if (rest > 1 && rest < 5)
         currency += "я";
      else
         currency += "ей";
   }
   
   cout << n << currency << endl;
   
   cin.get();
   
   return 0;
}
1
Orient1893
1 / 1 / 0
Регистрация: 11.05.2015
Сообщений: 35
14.05.2015, 16:12  [ТС] 6
спасибо больше,сейчас буду разбирать,что и как работает,а то знания в с++ ещё не сильно больше))
0
Assassin225
12 / 12 / 7
Регистрация: 24.10.2015
Сообщений: 206
24.10.2015, 10:01 7
Orient1893, может пригодится мой ответ. Вот твою программу про рубли, можно написать с помощью только switch:
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
// Программа рубль рубля рублей switch
 
#include "iostream";
#include <conio.h>;
using std::cout;
using std::cin;
using std::endl;
 
int main()
{
    setlocale(LC_ALL, "Ru");
    int RUB;
 
    cout << "Введите сколько у вас рублей: ";
    cin >> RUB;
    cout << "У вас: " << RUB << ' ';
    switch (RUB % 100)
    {
    case 0: cout << "рублей"; break;
    case 1: cout << "рубль"; break;
    case 2:
    case 3: 
    case 4: cout << "рубля"; break;
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20: cout << "рублей"; break;
    case 21: cout << "рубль"; break;
    case 22: 
    case 23:
    case 24: cout << "рубля"; break;
    case 25: 
    case 26:
    case 27:
    case 28:
    case 29:
    case 30: cout << "рублей"; break;
    case 31: cout << "рубль"; break;
    case 32: 
    case 33:
    case 34: cout << "рубля"; break;
    case 35:
    case 36:
    case 37:
    case 38:
    case 39:
    case 40: cout << "рублей"; break;
    case 41: cout << "рубль"; break;
    case 42:
    case 43:
    case 44: cout << "рубля"; break;
    case 45: 
    case 46:
    case 47:
    case 48:
    case 49:
    case 50: cout << "рублей"; break;
    case 51: cout << "рубль"; break;
    case 52:
    case 53:
    case 54: cout << "рубля"; break;
    case 55:
    case 56:
    case 57:
    case 58:
    case 59:
    case 60:
    case 61: cout << "рубль"; break;
    case 62: 
    case 63: 
    case 64: cout << "рубля"; break;
    case 65: 
    case 66:
    case 67:
    case 68:
    case 69:
    case 70: cout << "рублей"; break;
    case 71: cout << "рубль"; break;
    case 72: 
    case 73:
    case 74: cout << "рубля"; break;
    case 75: 
    case 76:
    case 77:
    case 78:
    case 79:
    case 80: cout << "рублей"; break;
    case 81: cout << "рубль"; break;
    case 82:
    case 83:
    case 84: cout << "рубля"; break;
    case 85: 
    case 86:
    case 87:
    case 88:
    case 89:
    case 90: cout << "рублей"; break;
    case 91: cout << "рубль"; break;
    case 92: 
    case 93:
    case 94: cout << "рубля"; break;
    case 95:
    case 96:
    case 97:
    case 98:
    case 99: cout << "рублей"; break;
    default: cout << "Неверное значение!"; break;
    }
    cout << '\n';
    _getch();
}
Добавлено через 22 минуты
return 0; забыл поставить в конец функции main. =)
0
Kerry_Jr
Эксперт PHP
2211 / 2007 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
24.10.2015, 11:41 8
Цитата Сообщение от Assassin225 Посмотреть сообщение
return 0; забыл поставить в конец функции main. =)
не важно, для main компилятор подставляет return автоматически. Вопрос в другом, зачем спустя пять месяцев присылать решение?
0
Assassin225
12 / 12 / 7
Регистрация: 24.10.2015
Сообщений: 206
24.10.2015, 11:49 9
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
Вопрос в другом, зачем спустя пять месяцев присылать решение?
А почему бы не прислать? Просто захотелось, я сам только учусь, операторы ветвления повторял, решил потренироваться на этой задаче
0
SmittWesson
212 / 187 / 21
Регистрация: 04.06.2014
Сообщений: 1,308
24.10.2015, 11:50 10
Цитата Сообщение от Assassin225 Посмотреть сообщение
Вот твою программу про рубли, можно написать с помощью только switch:
Ой, мама родная!

Вывод любого числа словами:
C++
1
2
3
4
5
6
7
8
  int n = 35;
  cout << n << "  руб" ;
  if(n % 100 > 4 && n % 100 < 20) cout << "лей" << endl;
  else
    if(n % 10 ==1) cout << "ль" << endl;
  else
    if(n % 10 > 1 && n % 10 < 5) cout << "ля" << endl;
  else cout << "лей" << endl;
2
Assassin225
12 / 12 / 7
Регистрация: 24.10.2015
Сообщений: 206
24.10.2015, 12:01 11
Цитата Сообщение от SmittWesson Посмотреть сообщение
Сообщение от Assassin225
Вот твою программу про рубли, можно написать с помощью только switch:
Ой, мама родная!
Вывод любого числа словами:
Код C++Выделить код
1
2
3
4
5
6
7
8
* int n = 35;
* cout << n << " *руб" ;
* if(n % 100 > 4 && n % 100 < 20) cout << "лей" << endl;
* else
* * if(n % 10 ==1) cout << "ль" << endl;
* else
* * if(n % 10 > 1 && n % 10 < 5) cout << "ля" << endl;
* else cout << "лей" << endl;
Я как раз думал как эту программу написать с помощью только if else. Низкий вам поклон
0
ПерС
431 / 356 / 322
Регистрация: 05.11.2013
Сообщений: 1,008
Записей в блоге: 6
Завершенные тесты: 1
24.10.2015, 15:14 12
логичней метод с 5 параметрами, давно использую вот такой на PHP, код похож
0
SmittWesson
212 / 187 / 21
Регистрация: 04.06.2014
Сообщений: 1,308
24.10.2015, 18:43 13
Цитата Сообщение от ПерС Посмотреть сообщение
логичней метод с 5 параметрами, давно использую вот такой на PHP, код похож
Ваш код на одну строку компактнее. Вот, перевёл на С++.

C++
1
2
3
4
5
  int n = 1;
  cout << n << "  руб";
  if(n % 100 > 10 && n % 100 < 20 || n % 10 == 0 || n % 10 > 4) cout << "лей" << endl;
  else if(n % 10 > 1 && n % 10 < 5) cout << "ля" << endl;
  else cout << "ль" << endl;
0
IVSasha
6 / 6 / 3
Регистрация: 29.07.2015
Сообщений: 61
24.10.2015, 23:09 14
C++
1
2
3
4
5
6
7
8
  int n = 35;
  cout << n << "  ру" ;
  if(n % 100 > 4 && n % 100 < 20) cout << "блей" << endl;
  else
    if(n % 10 ==1) cout << "бль" << endl;
  else
    if(n % 10 > 1 && n % 10 < 5) cout << "бля" << endl;
  else cout << "блей" << endl;
Добавлено через 2 минуты
C++
1
cout << 2 << "ру" << "бля" << endl;
0
Orient1893
1 / 1 / 0
Регистрация: 11.05.2015
Сообщений: 35
25.10.2015, 13:44  [ТС] 15
C++
1
2
3
4
5
6
7
8
  int n = 35;
  cout << n << "  ру" ;
  if(n % 100 > 4 && n % 100 < 20) cout << "блей" << endl;
  else
    if(n % 10 ==1) cout << "бль" << endl;
  else
    if(n % 10 > 1 && n % 10 < 5) cout << "бля" << endl;
  else cout << "блей" << endl;
ну как вариант
0
25.10.2015, 13:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2015, 13:44

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить...

Составить программу, которая при вводе символа с клавиатуры выво-дит "латинская буква" при вводе латинской буквы и "не латинская бук-ва" во всех остал
Составить программу, которая при вводе символа с клавиатуры выво-дит...

по строкам.замените в слове сочетание "му" на "а" , а букву "ы" на "ца". очень нужно
замените в слове сочетание &quot;му&quot; на &quot;а&quot; , а букву &quot;ы&quot; на &quot;ца&quot;. очень нужно ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru