Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/34: Рейтинг темы: голосов - 34, средняя оценка - 4.88
1 / 1 / 0
Регистрация: 11.05.2015
Сообщений: 35
1

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

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

Author24 — интернет-сервис помощи студентам
Начал решать задачу и засох на средине, не выходить формулу написать,если не сложно,подскажите) с с++ знаю пока что 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.05.2015, 14:36
Ответы с готовыми решениями:

Как можно сделать чтобы при вводе букв выводило ошибку?
Как можно сделать в массиве console c++ чтобы при вводе букв выводило ошибку или просто ничего не...

Необходимо немного исправить код(сделать так чтобы не выводило лишние 0), и выводило поле слева от номера бита
#include &lt;stdio.h&gt; unsigned setbit(unsigned x, int p, int n); void printfbit(unsigned n); ...

Нужно сделать так чтобы при неправильном вводе программа не прекращала работу, а предлагала заново ввести значение N
Вот собственно сам код #include&lt;ctime&gt; #include&lt;iostream&gt; using namespace std; int N,...

Как сделать так, чтобы при вводе отрицательного кол-ва человек или =0, в консоли выводилось «Количество челове
Как сделать так, чтобы при вводе отрицательного кол-ва человек или =0, в консоли выводилось...

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

Добавлено через 55 секунд
жалко что недели 2 назад все рограммы поудалял=)
0
240 / 213 / 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
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
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
1 / 1 / 0
Регистрация: 11.05.2015
Сообщений: 35
14.05.2015, 16:12  [ТС] 6
спасибо больше,сейчас буду разбирать,что и как работает,а то знания в с++ ещё не сильно больше))
0
13 / 13 / 7
Регистрация: 24.10.2015
Сообщений: 209
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
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
24.10.2015, 11:41 8
Цитата Сообщение от Assassin225 Посмотреть сообщение
return 0; забыл поставить в конец функции main. =)
не важно, для main компилятор подставляет return автоматически. Вопрос в другом, зачем спустя пять месяцев присылать решение?
0
13 / 13 / 7
Регистрация: 24.10.2015
Сообщений: 209
24.10.2015, 11:49 9
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
Вопрос в другом, зачем спустя пять месяцев присылать решение?
А почему бы не прислать? Просто захотелось, я сам только учусь, операторы ветвления повторял, решил потренироваться на этой задаче
0
236 / 196 / 21
Регистрация: 04.06.2014
Сообщений: 1,309
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
13 / 13 / 7
Регистрация: 24.10.2015
Сообщений: 209
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
585 / 488 / 371
Регистрация: 05.11.2013
Сообщений: 1,265
Записей в блоге: 6
24.10.2015, 15:14 12
логичней метод с 5 параметрами, давно использую вот такой на PHP, код похож
0
236 / 196 / 21
Регистрация: 04.06.2014
Сообщений: 1,309
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
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
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.10.2015, 13:44
Помогаю со студенческими работами здесь

Нужно нарисовать флаг, и сделать проверку на то, чтобы при вводе числа 0 - программа закрывалась
Прошу помощи =) Нужно нарисовать флаг, и сделать проверку на то, чтобы при вводе числа 0 -...

Как сделать так чтобы при нажатии на кнопку выводило форму
есть форма регистрации &lt;div v-if=&quot;show&quot; class=&quot;form-wrap&quot;&gt; &lt;div class=&quot;profile&quot;&gt;&lt;img...

сделать циклическую программу для любых чисел,чтобы при вводе числа получалось например так: 512=(5+1+2)3
сделать циклическую программу для любых чисел,чтобы при вводе числа получалось например так:...

сделать циклическую программу для любых чисел,чтобы при вводе числа получалось например так: 512=(5+1+2)3
сделать циклическую программу для любых чисел,чтобы при вводе числа получалось например так:...

Нужно в Delphi 7 сделать чтобы в ShowMessage выводило три рандомных числа от 0 до 9
Нужно в Delphi 7 сделать чтобы в ShowMessage выводило три рандомных числа от 0 до 9

Никак не могу сделать, чтобы, при вводе или числа, или нуля, выходило окно о том, что "введите число"
Никак не могу сделать, чтобы, при вводе или числа, или нуля, выходило окно о том, что &quot;введите...

как сделать так чтобы при активном checkbox на базу данных выводило цифры через sql запрос
например при активном checkbox1 выводит на БД Access цифру 1. программу надо сделать и связать с...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru