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

Выполнил задачу. Укажите на недочеты - C++

Восстановить пароль Регистрация
 
ProProger
6 / 2 / 0
Регистрация: 19.09.2012
Сообщений: 95
09.11.2012, 16:41     Выполнил задачу. Укажите на недочеты #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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include "std_lib_facilities.h"
int main()
{
    setlocale( LC_ALL,"Russian" );
    int m1, m2, m3, m4, m5, m6;
    double summa;
    cout << "Введите количество 1-центовых монет\n\t\t\t\t\t\t\t\t\t";
    cin >> m1;
    cout << "Введите количество 5-центовых монет\n\t\t\t\t\t\t\t\t\t";
    cin >> m2;
    cout << "Введите количество 10-центовых монет\n\t\t\t\t\t\t\t\t\t";
    cin >> m3;
    cout << "Введите количество 25-центовых монет\n\t\t\t\t\t\t\t\t\t";
    cin >> m4;
    cout << "Введите количество 50-центовых монет\n\t\t\t\t\t\t\t\t\t";
    cin >> m5;
    cout << "Введите количество доллоровых монет\n\t\t\t\t\t\t\t\t\t";
    cin >> m6;
    if(m1 == 1)
        cout << "У вас" << " " << m1 << " " << "одноцентовая монета\n";
    else
        cout << "У вас" << " " << m1 << " " << "одноцентовых монет\n";
    if(m2 == 1)
        cout << "У вас" << " " << m2 << " " << "пятицентовая монета\n";
    else
        cout << "У вас" << " " << m2 << " " << "пятицентовых монет\n";
    if(m3 == 1)
        cout << "У вас" << " " << m3 << " " << "десятицентовая монета\n";
    else
        cout << "У вас" << " " << m3 << " " << "десятицентовых монет\n";
    if(m4 == 1)
        cout << "У вас" << " " << m4 << " " << "25-центовая монета\n";
    else
        cout << "У вас" << " " << m4 << " " << "25-центовых монет\n";
    if(m5 == 1)
        cout << "У вас" << " " << m5 << " " << "50-центовая монета\n";
    else
        cout << "У вас" << " " << m5 << " " << "50-центовых монет\n";
    if(m5 == 1)
        cout << "У вас" << " " << m5 << " " << "доллар\n";
    else
        cout << "У вас" << " " << m6 << " " << "долларов\n";
    summa = m1 * 0.01 + m2 * 0.05 + m3 * 0.1 + m4 * 0.25 + m5 * 0.5 + m6;
    cout << "Общая стоимость монет равна" << " " << summa << " " << "доллара\n";
    system("pause");
    return 0;
}
Задачу можно поделить на несколько условий:
  • Предложить пользователю ввести определенное 1-,5-,10-,25-,50-центовых и долларовых монет.(сделал)
  • Пользователь должен по отдельности ввести количество монет каждого достоинства.(сделал)
  • Результат должен выглядеть следующим образом.(каким образом должен выглядеть результат можно увидеть во вложении)(сделал)
  • Попробуйте вывести числа, выровняв их по правому краю(какие числа я не понял но выровнял те которые вводит пользователь)
  • Усовершенствуйте программу: если у пользователя только одна монета, выведите ответ в грамматическим правильной форме. Например, "14 десятицентовых монет" и "1 одноцентовая монета"(а не "1 одноцентовых монет").(сделал но только с одной монетой как сказано в задаче)
  • Выведите результат в долларах и центах, т,е. 5,73 доллара, а не 573 цента.(сделал)

Напомню что 1 доллар == 0,01 центов
Миниатюры
Выполнил задачу. Укажите на недочеты  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
09.11.2012, 16:50
  #2

Не по теме:

Цитата Сообщение от ProProger Посмотреть сообщение
Напомню что 1 доллар == 0,01 центов
? Я всегда думал, что 1 цент = 0.01 доллара.

ProProger
6 / 2 / 0
Регистрация: 19.09.2012
Сообщений: 95
09.11.2012, 16:57  [ТС]     Выполнил задачу. Укажите на недочеты #3
Цитата Сообщение от BumerangSP Посмотреть сообщение

Не по теме:


? Я всегда думал, что 1 цент = 0.01 доллара.

ой да точно(спасибо) 1 цент США = 0.01 доллара США
Так че насчет задачи скажите правильно все да?
Как поизящнее решить не подскажите?
Джек
5 / 5 / 0
Регистрация: 16.08.2011
Сообщений: 77
09.11.2012, 17:06     Выполнил задачу. Укажите на недочеты #4
Здравствуйте. По моему было бы не плохо ввести структуру switch. Ещё один вариант задать ету програму через функции то есть чтобы каждый оператор вызывал отдельную функцию и она обрабатывала какое либо действие, ну и еще если хотите можно попробовать ету програму сделать через класы. Вооще по моему ету прогу можна очень сильно модифицыроваь.
Если нужна помощь спрашывайте.
ProProger
6 / 2 / 0
Регистрация: 19.09.2012
Сообщений: 95
09.11.2012, 17:08  [ТС]     Выполнил задачу. Укажите на недочеты #5
Цитата Сообщение от Джек Посмотреть сообщение
Здравствуйте. По моему было бы не плохо ввести структуру switch. Ещё один вариант задать ету програму через функции то есть чтобы каждый оператор вызывал отдельную функцию и она обрабатывала какое либо действие, ну и еще если хотите можно попробовать ету програму сделать через класы. вооще по моему ету прогу можна очень сильно модифицыроваь.
Если нужна помощь спрашывайте.
Ну я пока до классов не дошел так что потом попробую
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
09.11.2012, 17:13     Выполнил задачу. Укажите на недочеты #6
Цитата Сообщение от ProProger Посмотреть сообщение
if(m1 == 1)
cout << "У вас" << " " << m1 << " " << "одноцентовая монета\n";
else
cout << "У вас" << " " << m1 << " " << "одноцентовых монет\n";
вот здесь он напишет у вас 21(31 41) одноцентовых монет
у вас 2(3 4 ) одноцентовых монет
поищи на форуме задача про правильное написание недавно решалась
надо что то типа

C++
1
2
3
4
5
6
7
8
if(10<=m && m<=20)
  cout << "У вас" << " " << m1 << " " << "одноцентовых монет\n";
  else if(m%10==1)
        cout << "У вас" << " " << m1 << " " << "одноцентовая монета\n";
    else if(1< m%10 && m%10 <5)
               cout << "У вас" << " " << m1 << " " << "одноцентовые монеты\n";
            else
              cout << "У вас" << " " << m1 << " " << "одноцентовых монет\n";
Добавлено через 1 минуту
Цитата Сообщение от Джек Посмотреть сообщение
По моему было бы не плохо ввести структуру switch.
стесняюсь спросить что это за структура такая?
ProProger
6 / 2 / 0
Регистрация: 19.09.2012
Сообщений: 95
09.11.2012, 17:16  [ТС]     Выполнил задачу. Укажите на недочеты #7
Цитата Сообщение от ValeryS Посмотреть сообщение
вот здесь он напишет у вас 21(31 41) одноцентовых монет
у вас 2(3 4 ) одноцентовых монет
поищи на форуме задача про правильное написание недавно решалась
надо что то типа

C++
1
2
3
4
5
6
7
8
if(10<=m && m<=20)
  cout << "У вас" << " " << m1 << " " << "одноцентовых монет\n";
  else if(m%10==1)
        cout << "У вас" << " " << m1 << " " << "одноцентовая монета\n";
    else if(1< m%10 && m%10 <5)
               cout << "У вас" << " " << m1 << " " << "одноцентовые монеты\n";
            else
              cout << "У вас" << " " << m1 << " " << "одноцентовых монет\n";
Добавлено через 1 минуту

стесняюсь спросить что это за структура такая?
Спасибо
Джек
5 / 5 / 0
Регистрация: 16.08.2011
Сообщений: 77
09.11.2012, 17:28     Выполнил задачу. Укажите на недочеты #8
По сути ето структура (елемент) который просто заменяет кучу if и else. Лично я щитаю что если много if и else можно запутаться. Если нужен пример то предоставлю.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
09.11.2012, 17:34     Выполнил задачу. Укажите на недочеты #9
Цитата Сообщение от Джек Посмотреть сообщение
По сути ето структура (елемент)
если ты считаешь что вот это
C++
1
2
3
4
switch()
 {
 case:
...................
структура то я дико извиняюсь
Цитата Сообщение от Джек Посмотреть сообщение
Если нужен пример то предоставлю.
напиши пожалуйста более читаемый свитч(хотя бы для центов) если учесть что в C(++) не поддерживаются диапазоны
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11817 / 6796 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
09.11.2012, 17:39     Выполнил задачу. Укажите на недочеты #10
Могу предложить такой вариант:
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
#include <iostream>
using namespace std;
int main()
{
setlocale( LC_ALL,"Russian" );
int m[6];
double advmulti[6]={0.01,0.05,0.1,0.25,0.5,1};
char *pStr[6]={"одноцентов","пятицентов","десятицентов","25-центов","50-центов","доллар"};
double summa=0;
for(int i=0;i<6;i++){
    if(i==5)
        cout<<"Введите количество доллоровых монет\n\t\t\t\t\t\t\t\t\t";
    else
        cout << "Введите количество "<<advmulti[i]*100<<"-центовых монет\n\t\t\t\t\t\t\t\t\t";
    cin >> m[i];
}
 
for(int i=0;i<6;i++){
    if (i==5){
        cout << "У вас" << " " << m[i] << " " <<pStr[i]<<((m[i]==1)?"":(m[i]>1 && m[i]<5)?"а":"ов\n");
    }
    else{
        cout << "У вас" << " " << m[i] << " " <<pStr[i]<<((m[i]==1)?"ая":(m[i]>1 && m[i]<5)?"ые":"ых");
        cout<<" монет"<<((m[i]==1)?"а":(m[i]>1 && m[i]<5)?"ы":"")<<"\n";
    }
}
    for(int i=0;i<6;i++)
        summa+=m[i]*advmulti[i];
    cout << "\nОбщая стоимость монет равна" << " " << summa << " " << "доллара\n";
    system("pause");
    return 0;
}
Скриншот со старого варианта, там с 0 баг =)
Выполнил задачу. Укажите на недочеты
Джек
5 / 5 / 0
Регистрация: 16.08.2011
Сообщений: 77
09.11.2012, 18:10     Выполнил задачу. Укажите на недочеты #11
ValeryS Пока придумал так:

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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
#include <conio.h>
 
//---------------------------------------------------------------------------
 
#pragma argsused
int main()
{  setlocale( LC_ALL,"Russian" );
    int m1, m2, m3, m4, m5, m6;
    double summa;
    cout << "Введите количество 1-центовых монет\n\t\t\t\t\t\t\t\t\t";
    cin >> m1;
    cout << "Введите количество 5-центовых монет\n\t\t\t\t\t\t\t\t\t";
    cin >> m2;
    cout << "Введите количество 10-центовых монет\n\t\t\t\t\t\t\t\t\t";
    cin >> m3;
    cout << "Введите количество 25-центовых монет\n\t\t\t\t\t\t\t\t\t";
    cin >> m4;
    cout << "Введите количество 50-центовых монет\n\t\t\t\t\t\t\t\t\t";
    cin >> m5;
    cout << "Введите количество доллоровых монет\n\t\t\t\t\t\t\t\t\t";
    cin >> m6;
    switch(m1 )
    {case 1:
    //if
    cout << "У вас" << " " << m1 << " " << "одноцентовая монета\n";
     break;
     
 
 
    }  //else
     cout << "У вас" << " " << m1 << " " << "одноцентовых монет\n";
    switch(m2)
    {//if
    case 1:
    cout << "У вас" << " " << m2 << " " << "пятицентовая монета\n";
    break;
    
 
    }  //else
    cout << "У вас" << " " << m2 << " " << "пятицентовых монет\n";
    switch (m3)
    {case 1:
    cout << "У вас" << " " << m3 << " " << "десятицентовая монета\n";
    break;
    
 
    }   //else
    cout << "У вас" << " " << m3 << " " << "десятицентовых монет\n";
    switch(m4)
    {//if
    case 1:
    cout << "У вас" << " " << m4 << " " << "25-центовая монета\n";
    break;
    
 
 
    } //else
     cout << "У вас" << " " << m4 << " " << "25-центовых монет\n";
     switch(m5)
     {//if
       case 1:
     cout << "У вас" << " " << m5 << " " << "50-центовая монета\n";
     break;
 
     }
     //else
      cout << "У вас" << " " << m5 << " " << "50-центовых монет\n";
      cout << "У вас" << " " << m6 << " " << "долларов\n";
    summa = m1 * 0.01 + m2 * 0.05 + m3 * 0.1 + m4 * 0.25 + m5 * 0.5 + m6;
    cout << "Общая стоимость монет равна" << " " << summa << " " << "доллара\n";
    system("pause");
     getch();
    return 0;
 
 
}
//---------------------------------------------------------------------------
(взял первый код просто вставил свитчи)
Пока я так решил
По моему пример удался.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
09.11.2012, 18:18     Выполнил задачу. Укажите на недочеты #12
Цитата Сообщение от Джек Посмотреть сообщение
По моему пример удался.
ага если учесть что
Цитата Сообщение от Джек Посмотреть сообщение
C++
1
2
3
4
5
6
7
switch(m1 )
 {case 1:
 //if
 cout << "У вас" << " " << m1 << " " << "одноцентовая монета\n";
 break;
} //else
 cout << "У вас" << " " << m1 << " " << "одноцентовых монет\n";
при одной монете он напишет
"У вас 1 одноцентовая монета"
и в следующей строчке
"У вас 1 одноцентовых монет"
тогда уж так
C++
1
2
3
4
5
6
7
8
9
switch(m1 )
 {
case 1:
 cout << "У вас" << " " << m1 << " " << "одноцентовая монета\n";
 break;
 default:
  cout << "У вас" << " " << m1 << " " << "одноцентовых монет\n";
 break;
}
но это не снимает вопрос 21 31 41.....
2 3 4 (22 23 24)
не может он написать
"У вас 2 одноцентовые монеты"


PS
пользуйся тегами выделения кода
Джек
5 / 5 / 0
Регистрация: 16.08.2011
Сообщений: 77
09.11.2012, 18:37     Выполнил задачу. Укажите на недочеты #13
ValeryS вот представляю вам код с свитчами пока придумал ето. Интересует ваше мнение.
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
#include <conio.h>
 
 
//---------------------------------------------------------------------------
 
#pragma argsused
void main()
{
 
    int m1, m2, m3, m4, m5, m6;
    double summa;
    cout << "Введите количество 1-центовых монет\n\t\t\t\t\t\t\t\t\t";
    cin >> m1;
    cout << "Введите количество 5-центовых монет\n\t\t\t\t\t\t\t\t\t";
    cin >> m2;
    cout << "Введите количество 10-центовых монет\n\t\t\t\t\t\t\t\t\t";
    cin >> m3;
    cout << "Введите количество 25-центовых монет\n\t\t\t\t\t\t\t\t\t";
    cin >> m4;
    cout << "Введите количество 50-центовых монет\n\t\t\t\t\t\t\t\t\t";
    cin >> m5;
    cout << "Введите количество доллоровых монет\n\t\t\t\t\t\t\t\t\t";
    cin >> m6;
    switch(m1)
    {case 1:
    cout << "У вас" << " " << m1 << " " << "одноцентовая монета\n";
    break;
 
    }
      cout << "У вас" << " " << m1 << " " << "одноцентовых монет\n";
    switch(m2)
   { case 1:
        cout << "У вас" << " " << m2 << " " << "пятицентовая монета\n";
    }
        cout << "У вас" << " " << m2 << " " << "пятицентовых монет\n";
    switch (m3)
    {case 1:
        cout << "У вас" << " " << m3 << " " << "десятицентовая монета\n";
    }
        cout << "У вас" << " " << m3 << " " << "десятицентовых монет\n";
    switch(m4)
    {case 1:
        cout << "У вас" << " " << m4 << " " << "25-центовая монета\n";
    }
        cout << "У вас" << " " << m4 << " " << "25-центовых монет\n";
    switch(m5)
    {
    case 1:
        cout << "У вас" << " " << m5 << " " << "50-центовая монета\n";
        cout << "У вас" << " " << m5 << " " << "доллар\n";
 
    }
        cout << "У вас" << " " << m5 << " " << "50-центовых монет\n";
        cout << "У вас" << " " << m6 << " " << "долларов\n";
 
    summa = m1 * 0.01 + m2 * 0.05 + m3 * 0.1 + m4 * 0.25 + m5 * 0.5 + m6;
    cout << "Общая стоимость монет равна" << " " << summa << " " << "доллара\n";
                getch();
 
}
kertio
26 / 26 / 1
Регистрация: 20.09.2011
Сообщений: 68
09.11.2012, 18:39     Выполнил задачу. Укажите на недочеты #14
я где-то буквально позавчера писал функцию обработки окончаний. А по твоему заданию вот кусок кода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
int main()
{
    const int SIZE = 5;
    int coinssum[5] = { 0 };
    const char *coins[SIZE] = {
            "1-центовых монет\0",
            "5-центовых монет\0",
            "10-центовых монет\0",
            "25-центовых монет\0",
            "50-центовых монет\0"
            };
 
    for(int i = 0; i < SIZE; i++) {
        std::cout << "Введите количество " << coins[i] << ": ";
        std::cin >> coinssum[i];
    }
 
    for (int i = 0; i < SIZE; i++) {
        std::cout << "У вас " << coinssum[i] << " " << coins[i] << std::endl;
    }
}
остальное подправишь. сумму не сложно подсчитать. Найдешь ту функцию, про которую я говорил и задание готово.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
09.11.2012, 18:43     Выполнил задачу. Укажите на недочеты #15
та же ошибка
Цитата Сообщение от Джек Посмотреть сообщение
C++
1
2
3
4
5
6
switch(m1)
 {case 1:
 cout << "У вас" << " " << m1 << " " << "одноцентовая монета\n";
 break;
}
 cout << "У вас" << " " << m1 << " " << "одноцентовых монет\n";
вот это
C++
1
cout << "У вас" << " " << m1 << " " << "одноцентовых монет\n";
выполнится всегда
я же тебе показал как правильно
Цитата Сообщение от ValeryS Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
switch(m1 )
 {
case 1:
 cout << "У вас" << " " << m1 << " " << "одноцентовая монета\n";
 break;
 default:
 cout << "У вас" << " " << m1 << " " << "одноцентовых монет\n";
 break;
}
при m1==1
выполнится ветка case 1:
во всех остальных случаях
ветка default:
Артем Смирнов
09.11.2012, 18:56
  #16

Не по теме:


ValeryS, Кстати много пособий видел, где инструкции управления обзываются структурами)) В основном конечно в интернет уроках)

kertio
26 / 26 / 1
Регистрация: 20.09.2011
Сообщений: 68
09.11.2012, 19:12     Выполнил задачу. Укажите на недочеты #17
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
#include <iostream>
#include <string>
 
const std::string replaceend(const char *s, int num);
int main()
{
    const int SIZE = 5;
    int coinssum[5] = { 0 };
    const char *coins[SIZE] = {
            "1-центовых монет\0",
            "5-центовых монет\0",
            "10-центовых монет\0",
            "25-центовых монет\0",
            "50-центовых монет\0"
    };
 
    const char *coinsend[SIZE] = {
            "1-центов\0",
            "5-центов\0",
            "10-центов\0",
            "25-центов\0",
            "50-центов\0"
    };
 
    for(int i = 0; i < SIZE; i++) {
        std::cout << "Введите количество " << coins[i] << ": ";
        std::cin >> coinssum[i];
    }
 
    for (int i = 0; i < SIZE; i++) {
        std::cout << "У вас " << coinssum[i] << " " << replaceend(coinsend[i], coinssum[i]) << std::endl;
    }
}
 
 
const std::string replaceend(const char *str, int num) {
    const std::string s = "ая монета";
    const std::string end = "ые монеты";
    const std::string end1 = "ых монет";
 
    if (num == 1 || (num > 20 && num % 10 == 1))
        return str + s;
 
    if ( (num > 1 && num < 5) || ((num > 20) && (num % 10) > 1 && (num % 10) < 5))
        return str + end;
    else if ( num == 0 || (num > 4 && num < 21) || ((num % 10) > 4) || (num % 10 == 0) )
        return str + end1;
 
    return "";
}
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11817 / 6796 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
09.11.2012, 19:19     Выполнил задачу. Укажите на недочеты #18
kertio,
Выполнил задачу. Укажите на недочеты
kertio
26 / 26 / 1
Регистрация: 20.09.2011
Сообщений: 68
09.11.2012, 19:22     Выполнил задачу. Укажите на недочеты #19
Цитата Сообщение от Croessmah Посмотреть сообщение
я не сказал что это законченный вариант. чуть чуть подправить и всё будет пучком. это просто пример что можно попроще сделать и код вроде как красивее... я ведь не думаю что нужно за тебя всё полностью сделать? :-)

З.Ы.
а вообще скорее всего есть какой-то алгоритм, о котором я не слышал. потому что вроде как до сотен работает нормально. так понимаю после сотен уже алгоритм меняется.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2012, 20:19     Выполнил задачу. Укажите на недочеты
Еще ссылки по теме:

Компилятор не выполнил квинтиллион+ операций) C++
Проверьте решение на ошибки и недочеты C++

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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11817 / 6796 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
09.11.2012, 20:19     Выполнил задачу. Укажите на недочеты #20
Вроде нормально выводит, но надо бы проверить
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
#include <iostream>
using namespace std;
int GetNumIndex(int num){
    return (num%100>4 && num%100<20)?2:(num%10==1)?0:(num%10>1 && num%10<5)?1:2;
}
int main()
{
setlocale( LC_ALL,"Russian" );
int m[6];
double advmulti[6]={0.01,0.05,0.1,0.25,0.5,1};
char *pStr[6]={"одноцентов","пятицентов","десятицентов","25-центов","50-центов","доллар"};
char *pEnd[6]={"ая монета","ые монеты","ых монет","","а","ов"};
 
double summa=0;
for(int i=0;i<6;i++){
    if(i==5)
        cout<<"Введите количество доллоровых монет\n\t\t\t\t\t\t\t\t\t";
    else
        cout << "Введите количество "<<advmulti[i]*100<<"-центовых монет\n\t\t\t\t\t\t\t\t\t";
    cin >> m[i];
}
 
for(int i=0;i<6;i++){
    if (i==5){
        cout<<"У вас"<<" "<<m[i]<<" "<<pStr[i]<<pEnd[GetNumIndex(m[i])+3]<<"\n";
    }
    else{
        cout<<"У вас"<<" "<<m[i]<<" "<<pStr[i]<<pEnd[GetNumIndex(m[i])]<<"\n";
    }
}
    for(int i=0;i<6;i++)
        summa+=m[i]*advmulti[i];
    cout << "\nОбщая стоимость монет равна" << " " << summa << " доллар" <<pEnd[GetNumIndex(static_cast<int>(summa))+3]<<"\n";
    system("pause");
    return 0;
}
Yandex
Объявления
09.11.2012, 20:19     Выполнил задачу. Укажите на недочеты
Ответ Создать тему
Опции темы

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