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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Lostmyplace
0 / 0 / 0
Регистрация: 21.12.2013
Сообщений: 42
#1

Функция разменник - C++

06.04.2014, 08:14. Просмотров 217. Ответов 2
Метки нет (Все метки)

Помогите написать функцию для подсчета количества элементов массива, содержащихся числе

К примеру мне дан массив arr[14]={5000,1000,500,100,50,10,5,2,1,0.5,0.1,0.05,0.02,0.01}; и дана сумма 5202,12

Мне нужно посчитать сколько в нем элементов по 5000, потом по 1000 и так далее. Иными словами разменник купюр
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2014, 08:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция разменник (C++):

Перегрузка операций: friend-функция или функция-член класса - C++
Здравствуйте, меня интересует вопрос, в чем разница при перегрузке операторов через operator и friend. Вот к примеру такой код. class...

Функция удаления текста в скобках [2], непосредственно функция + 12кб вложений - C++
Доброго времени суток, случилось так, что пришлось работать с с-строками (лаба, угу), в которой нужно удалить весь текст в скобках,...

Функция sqrt: существует более одного экземпляра. Функция перегруженная - C++
#include <iostream> #include <math.h> #include <iomanip> using namespace std; int main(){ float s, p; int c, a; s=0; ...

какую библиотеку надо подключать чтоб работала функция _getch() и функция cin.get() - C++
какую библиотеку надо подключать чтоб работала функция _getch() и функция cin.get()

что за функция такая strstr? или это не функция? - C++
void search(sp *list){ sp *prt = list; char f,r; cout<<Rus("введите текст")<<endl; cin>>f; cout<<Rus("введите выходной...

Чистая виртуальная функция функция не имеет оператора переопределения - C++
Пишу программу для записи заметок. Есть 2 класса: Page и Note. Note наследуется от Page. Page.h #pragma once ...

2
zitxbit
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
06.04.2014, 10:16 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <stdio.h>
#include <conio.h>
#include <memory.h>
 
#define N 14
 
typedef struct
{
    double amount;
    int count;
} CURRENCY;
 
int main(int argc, char** argv)
{
    double amount = 5202.12;
    double arr[N] = { 5000, 1000, 500, 100, 50, 10, 5, 2, 1, 0.5, 0.1, 0.05, 0.02, 0.01 };
 
    CURRENCY* currency = new CURRENCY[N];
    memset((void*)currency, 0x00, sizeof(CURRENCY) * N);
    for (int index = 0; index < N; index++)
        currency[index].amount = arr[index];
 
    for (int index = 0; index < N; index++)
        if (amount > currency[index].amount)
        {
            currency[index].count = ((int)(amount / currency[index].amount));
            amount-=currency[index].amount * currency[index].count;
        }
 
    for (int index = 0; index < N; index++)
        if (currency[index].count > 0)
            printf("%4.2f %d\n",currency[index].amount, currency[index].count);
 
    _getch();
 
    return 0;
}
http://codepad.org/s0zljZqw
2
Миниатюры
Функция разменник  
zitxbit
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
06.04.2014, 10:28 #3
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
#include <vector>
#include <iostream>
#include <iomanip>
 
using namespace std;
 
int main(int argc, char** argv)
{
    double amount = 5202.12;
    double arr[14] = { 5000, 1000, 500, 100, 50, 10, 5, 2, 1, 0.5, 0.1, 0.05, 0.02, 0.01 };
 
    int index = 0;
    vector< pair<double,int> > currency;
    vector< pair<double,int> >::iterator it;
    currency.resize(sizeof(arr)/sizeof(arr[0]));
    for (it = currency.begin(); it != currency.end(); it++)
        it->first = arr[index++];
 
    for (it = currency.begin(); it != currency.end(); it++)
        if (amount > it->first)
        {
            it->second+=((int)(amount / it->first));
            amount-=it->first * it->second;
        }
 
    for (it = currency.begin(); it != currency.end(); it++)
        if (it->second > 0) std::cout << 
            it->first << " " << it->second << endl;
 
    cout << "Press any key to continue\n" << endl;
 
    std::cin.get();
 
    return 0;
}
http://codepad.org/vM64HIhR
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2014, 10:28
Привет! Вот еще темы с ответами:

Создать производный класс, в котором реализована функция умножения вектора на число и функция сложения двух векторов - C++
Write программу с использованием класса Вектор (не без помощи форумчанина), но необходимо создать производный класс, в котором реализована...

Функция заполняющая массив и функция вывода массива - C++
Напишите две функции. Первая функция заполняет массив, вторая функция выводит массив на экран

Нужно сделать, чтобы программа состояла из 3 функций, тоесть 1-ая функция ввода массива, 2-ая основная функция, 3-я- вывод массива - C++
Есть программа #include &lt;iostream&gt; #include &lt;algorithm&gt; const int N = 5; int handSet(void) { int a; std::cout...

Функция возвращающая абсолютное разницу первого и второго параметров и функция типа int, возвращающая минимальное из трех целых чисел - C++
Разработать заданные согласно условия функции и сделать в главной программе по два вызова этих функций с различными параметрами. Для...


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

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

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