Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 29.06.2017
Сообщений: 4

Вывод количества монет в правильной грамматической форме

20.07.2017, 11:15. Показов 1233. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствйте!
Задача 11 3 глава в книге Б. Страуструпа
Большая часть программы решена, но последняя часть задания добила...

Необходимо, чтобы ответ выводился в правильной грамматической форме. Необходимо использовать достаточно простые конструкции (while, if).

Я начинающий, пока прочитал только 119 стр. книги Б. Страуструпа "Программирование: принципы и практика использования C++".


--------------------------------------
Использую: Xcode (версия 8.3.3)
Операционная система: Mac OS X

Всем кто откликнулся огромное благодарю!

Код программы:

Не использую директиву Б.Страуструпа std_lib_facilities.

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
#include <iostream>
using namespace std;
 
int main ()
{
    cout <<"Здравствуйте! Добро пожаловать в счётчик монет!\n";
    
    cout <<"Сколько у вас одноцентовых монет?                                            ";
    int one = 0;
    cin >> one;
    cout <<"\n";
    
    cout <<"Сколько у вас пятицентовых монет?                                            ";
    int fife = 0;
    cin >> fife;
    cout <<"\n";
    
    cout <<"Сколько у вас десятицентовых монет?                                          ";
    int ten = 0;
    cin >> ten;
    cout <<"\n";
    
    cout <<"Сколько у вас 25-центовых монет?                                             ";
    int n25 = 0;
    cin >> n25;
    cout <<"\n";
    
    
    cout <<"Сколько у вас 50-центовых монет?                                             ";
    int n50 = 0;
    cin >> n50;
    
    cout <<"\n";
    cout <<"\n";
    cout <<"\n";
    cout <<"\n";
    cout <<"\n";
    
    int summ = 0;
    summ = one+fife+ten+n25+n50;
    
    cout <<"У вас " <<one <<" одноцентовые монеты.\n"
    <<"У вас " <<fife <<" пятицентовых монет.\n"
    <<"У вас " <<ten <<" десятицентовых монет.\n"
    <<"У вас " <<n25 <<" 25-центовых монет.\n"
    <<"У вас " <<n50 <<" 50-центовые монеты.\n";
    cout <<"Общая стоимость ваших монет равна " <<summ <<" центам.\n";
    
}
Фото задания из книги ниже:
Миниатюры
Вывод количества монет в правильной грамматической форме  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.07.2017, 11:15
Ответы с готовыми решениями:

Дописать слово в правильной форме
Написать программу, которая после введенного с клавиатуры числа (в диапазоне от 1 до 99) обозначает денежную единицу, дописывает слово...

Определить фальшивую монету за заданое число взвешиваний среди указанного количества золотых монет
Есть 25 золотых монет. Одна из них фальшивая и она по весу меньше. Определить за 3 взвешивания фальшивую монету. Взвешивание производится...

Дописать слово «Рубль» в правильной форме
Составить программу, которая после введенного с клавиатуры числа (в диапазоне от 1 до 99), обозначающего денежную единицу, дописывает слово...

5
 Аватар для AmbA
495 / 24 / 6
Регистрация: 09.06.2017
Сообщений: 322
Записей в блоге: 20
20.07.2017, 11:29
Последняя - это про грамматически правильную форму? Если да, то используем извлечение остатка
C++
1
%
, и оператор switch, и отдельный if - для диапазона -надцать - 11...19. Сначала if, потом switch.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
20.07.2017, 11:31
Dmitriy1594, Вот, похожее
Определить окончание существительного в зависимости от введенного количества
Там, правда, считают более интересные и актуальные вещи...
0
0 / 0 / 0
Регистрация: 29.06.2017
Сообщений: 4
20.07.2017, 11:33  [ТС]
Amba, благодарю!
Щас попробуем!
0
0 / 0 / 0
Регистрация: 29.06.2017
Сообщений: 4
20.07.2017, 13:44  [ТС]
Байт, огромнейшее вам благодарю!!

Та ссылка, которую вы прислали, очень помогла!)))
AmbA, вам тоже огромное благодарю за подсказку, тоже помогла!

Вообщем код работает , но Xcode ругается ошибкой 11db))

Вот код, который получился:

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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#include <iostream>
using namespace std;
 
int main ()
{
    cout <<"Здравствуйте! Добро пожаловать в счётчик монет!\n";
    
    /* Одноцентовые монеты */
    cout <<"Сколько у вас одноцентовых монет?                                            ";
    int one = 0;
    cin >> one;
    cout <<"\n";
    
    /* Пятицентовые монеты */
    cout <<"Сколько у вас пятицентовых монет?                                            ";
    int fife = 0;
    cin >> fife;
    cout <<"\n";
    
    /* Десятицентовые монеты */
    cout <<"Сколько у вас десятицентовых монет?                                          ";
    int ten = 0;
    cin >> ten;
    cout <<"\n";
    
    /* 25-центовые монеты */
    cout <<"Сколько у вас 25-центовых монет?                                             ";
    int n25 = 0;
    cin >> n25;
    cout <<"\n";
    
    /* 50-центовые монеты */
    cout <<"Сколько у вас 50-центовых монет?                                             ";
    int n50 = 0;
    cin >> n50;
    
    cout <<"\n";
    cout <<"\n";
    cout <<"\n";
    cout <<"\n";
    cout <<"\n";
    
    int summ = 0;
    summ = one+fife+ten+n25+n50;
    
    //---------------------------------------------------------------------------------------------
    /* Одноцентовые монеты */
    if (one >= 10 and one <= 20) {cout<<"У вас "<<one <<" одноцентовых монет\n";}
    else
    {
        cout<<"У вас "<<one;
        switch(one % 10)
        {
            case 0: case 5: case 6: case 7: case 8: case 9: cout<<" одноцентовых монет";
                break;
            case 1: cout<<" одноцентовая монета";
                break;
            case 2: case 3: case 4: cout<<" одноцентовые монеты";
                break;
        }
        
        cout<<".\n";
    }
    //---------------------------------------------------------------------------------------------
    /* Пятицентовые монеты */
    if (fife >= 10 and fife <= 20) {cout<<"У вас "<<fife <<" пятицентовых монет\n";}
    else
    {
        cout<<"У вас "<<fife;
        switch(fife % 10)
        {
            case 0: case 5: case 6: case 7: case 8: case 9: cout<<" пятицентовых монет";
                break;
            case 1: cout<<" пятицентовая монета";
                break;
            case 2: case 3: case 4: cout<<" пятицентовые монеты";
                break;
        }
        
        cout<<".\n";
    }
    //---------------------------------------------------------------------------------------------
    /* Десятицентовые монеты */
    if (ten >= 10 and ten <= 20) {cout<<"У вас "<<ten <<" десятицентовых монет\n";}
    else
    {
        cout<<"У вас "<<ten;
        switch(ten % 10)
        {
            case 0: case 5: case 6: case 7: case 8: case 9: cout<<" десятицентовых монет";
                break;
            case 1: cout<<" десятицентовая монета";
                break;
            case 2: case 3: case 4: cout<<" десятицентовые монеты";
                break;
        }
        
        cout<<".\n";
    }
    //---------------------------------------------------------------------------------------------
    /* 25-центовые монеты */
    if (n25 >= 10 and n25 <= 20) {cout<<"У вас "<<n25 <<" десятицентовых монет\n";}
    else
    {
        cout<<"У вас "<<n25;
        switch(n25 % 10)
        {
            case 0: case 5: case 6: case 7: case 8: case 9: cout<<" десятицентовых монет";
                break;
            case 1: cout<<" десятицентовая монета";
                break;
            case 2: case 3: case 4: cout<<" десятицентовые монеты";
                break;
        }
        
        cout<<".\n";
    }
    //---------------------------------------------------------------------------------------------
    /* 50-центовые монеты */
    if (n50 >= 10 and n50 <= 20) {cout<<"У вас "<<n50 <<" десятицентовых монет\n";}
    else
    {
        cout<<"У вас "<<n50;
        switch(n50 % 10)
        {
            case 0: case 5: case 6: case 7: case 8: case 9: cout<<" десятицентовых монет";
                break;
            case 1: cout<<" десятицентовая монета";
                break;
            case 2: case 3: case 4: cout<<" десятицентовые монеты";
                break;
        }
        
        cout<<".\n";
    }
    //---------------------------------------------------------------------------------------------
    
    cout <<"Общая стоимость ваших монет равна " <<summ <<" центам.\n";
    
}

Ниже прислал 2 фото, на которых:
1 фото: то что выводится в консоли (обошёл ошибку с помощью прописывания continue в консоли (вот так: "(11db) continue"))
2 фото: ошибка в консоли (справа внизу)


И всё же хочется, чтобы без ошибок работала программа
Миниатюры
Вывод количества монет в правильной грамматической форме   Вывод количества монет в правильной грамматической форме  
0
 Аватар для AmbA
495 / 24 / 6
Регистрация: 09.06.2017
Сообщений: 322
Записей в блоге: 20
20.07.2017, 14:37
Ошибку в консоли не вижу, а вот монеты надо умножать на их номинал, чтобы получить сумму денег )

Добавлено через 15 минут
И, мне кажется, выравнивать по правому краю с помощью пробелов - не это имелось в виду. Или спец. команда должна быть, как в штмл, или просто пару табов тиснуть
C++
1
cout << "Сколько у вас одноцентовых монет?\t\t";
да и всё.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.07.2017, 14:37
Помогаю со студенческими работами здесь

Проверка количества монет
В моей игре есть момент когда нужно 600 монет и тут возникает вопрос, если у игрока не 600 ,а 607 или 601 Можне без долго писания текста...

Изменение значения количества монет в приложении
Добрый день! Как можно реализовать чтобы при нажатии кнопки, (к примеру +5 монет) произошло моментальное обновление баланса! И ещё вот...

Подсчет количества монет разного номинала в определенной сумме
Привет всем! Прошу помощи в решении задачи. Содержание следующее: Необходимо создать скрипт, который будет считать количество монет,...

Найти наименьшее количество купюр и монет для выдачи энного количества рублей
Найти наименьшее количество купюр и монет для выдачи N рублей

вывести слово рубль в правильной форме
Помогите создать программы.очень срочно нужно. 1.вычисление стоимости телефонного разговора, предоставляемого по субботе и воскресенье...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru