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

Может ли купить покупатель вещь стоимости S так, чтобы у продавца нашлась точная сдача - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Массиви. http://www.cyberforum.ru/cpp-beginners/thread325686.html
Дан массив целых чисел. Найти: -среднее арифметическое; -(максимальное значение; -количество отрицательных элементов; -номера минимального элемента; -количество четных чисел; -минимальный из четных элементов этого массива.
C++ Напечатать список сотрудников, имеющих высшее образование. В файл записать информацию о сотрудниках некоторого предприятия: фамилия, домашний адрес, телефон, образование, оклад. Напечатать список сотрудников, имеющих высшее образование. http://www.cyberforum.ru/cpp-beginners/thread325685.html
C++ Символьной переменной L присвоить значение true, если отрицательная компонента вектора C встретится не позднее, чем у векторов A и B
Даны векторы A, B, C, у каждого из которых есть хотя бы одна отрицатель- ная компонента. Символьной переменной L присвоить значение true, если отрицательная компонента вектора C встретится не позднее, чем у векторов A и B (компоненты просмат- риваются в порядке возрастания их номеров), и значение false в противном случае. Вот я написал прогу вроде всё работает но мне кажется что я её не так...
Нужно закрасить графический объект в dev cpp C++
Помогите закрасить графический объект в dev cpp в желтый цвет с черными краями #include <graphics.h> int main() { initwindow(800,600); circle(160,100,50); circle(160,100,40); circle(145,80,10); circle(145,80,5);
C++ Несбалансированное бинарное дерево с рекурсивным обходом в обратном порядке http://www.cyberforum.ru/cpp-beginners/thread325643.html
добрый день. помогите пожалуйста с реализацией кода: .Несбалансированное бинарное дерево с рекурсивным обходом в обратном порядке (левое поддерево – правое поддерево – узел).
C++ Программа изменения слов Программа должна изменять все слова во вводимой пользователем фразе следующим образом: первая буква слова ставится в конец, а после нее добавляются еще 2 буквы "ау". Т.е. например слово "jump" - "umpjay", "the" - "hetay" и т.п. Вот мой код, ошибка Access violation и выводит много бреда: #include <iostream> #include <cstdlib> #include <cstring> using namespace std; void printLatinWord(... подробнее

Показать сообщение отдельно
povtiasd051
2 / 2 / 0
Регистрация: 06.12.2010
Сообщений: 135
08.07.2011, 07:51  [ТС]     Может ли купить покупатель вещь стоимости S так, чтобы у продавца нашлась точная сдача
Цитата Сообщение от JeyKip Посмотреть сообщение
заинтересовала задача...поэтому, интересно было сделать...дает правильный ответ с высокой вероятностью...

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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <cstdlib>
#include <time.h>
#include <set>
#include <math.h>
using namespace std;
 
int  Summ(int * mas, int count_el);
set<int> CombinationSumm (int * mas, int count_el);
int Sochetanie (int n, int m);
int CountSet (set<int> s);
int CanZdacha (set<int> prod, set<int> pokup, int price);
 
void main()
{
    
    setlocale(0,"");
    int m_prod, m_pokup;
    int *nom_prod, *nom_pokup;
    int price;
 
    printf("%s","Введите количество монет у продавца и покупателя соответственно\n");
    scanf("%d %d",&m_prod, &m_pokup);
 
    nom_prod = new int [m_prod];
    nom_pokup = new int [m_pokup];
 
    printf("%s","Введите номиналы монет у продавца\n");
    for (int i=0; i<m_prod; i++)
        scanf("%d",&nom_prod[i]);
 
    printf("%s","Введите номиналы монет у покупателя\n");
    for (int i=0; i<m_pokup; i++)
        scanf("%d",&nom_pokup[i]);
 
    printf("%s","Введите стоимость покупки\n");
    scanf("%d", &price);
 
    //хватит ли денег на покупку
    if (price > Summ(nom_pokup, m_pokup))
    {
        printf("%s", "\nПокупатель не может приобрести покупку. У него недостаточно денег");
        getch();
        exit(0);
    }
    else
    {
        int z = CanZdacha(CombinationSumm (nom_prod, m_prod), CombinationSumm (nom_pokup, m_pokup), price);
        switch (z)
        {
        case 0:
            printf("%s","\nКлиент дал под расчет");
            break;
        case 1:
            printf("%s", "\nЗдача есть");
            break;
        case 2:
            printf("%s", "\nЗдачи нет");
            break;
        }
    } 
    getch();
}
 
int Summ(int * mas, int count_el)
{
    int summ = 0;
    for (int i = 0; i<count_el; i++)
        summ+=mas[i];
    return summ;
}
 
set<int> CombinationSumm (int * mas, int count_el)
{
    int sum = 0;
    int money = 0;
    set<int> sets;
    set<int> sets_2;
    set<int>::iterator it1 = sets.begin();
    set<int>::iterator it2 = sets_2.begin();
 
    srand(time(0));
 
    for (int i=1; i<=count_el; i++)
    {
        for (int j=0; j<Sochetanie(count_el, i)*5; j++)
        {
            do
            {
                sets_2.insert(rand()%count_el);
            }
            while (CountSet(sets_2) != i);
 
            it2 = sets_2.begin();
            while (it2 != sets_2.end())
            {
                sum+=mas[*it2];
                it2++;
            }
            sets_2.clear();
            sets.insert(sum);
            sum = 0;
        }
    }
    return sets;
}
 
int Sochetanie (int n, int m)
{
    int p = 1;
    for (int i = m; i>0; i--)
        p*=(n--);
    return p;
}
 
int CountSet (set<int> s)
{
    set<int>::iterator it = s.begin();
    int count = 0;
    while (it != s.end())
    {
        count++;
        it++;
    }
    return count;
}
 
int CanZdacha (set<int> prod, set<int> pokup, int price)
{
    int zdacha = 2;
    set<int>::iterator it1 = prod.begin();
    set<int>::iterator it2 = pokup.begin();
 
    while (it1 != prod.end())
    {
        it2 = pokup.begin();
        while (it2 != pokup.end())
        {
            if ((*it2 - price) == *it1)
            {
                zdacha = 1;
                break;
            }
            else if ((*it2 - price) == 0)
            {
                zdacha = 0;
                break;
            }
            it2++;
        }
        it1++;
    }
    return zdacha;
}
эта программа не запускается помогите исправит ошибки в программе
 
Текущее время: 19:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru