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

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

Восстановить пароль Регистрация
 
Lostmyplace
0 / 0 / 0
Регистрация: 21.12.2013
Сообщений: 42
06.04.2014, 08:14     Функция разменник #1
Помогите написать функцию для подсчета количества элементов массива, содержащихся числе

К примеру мне дан массив 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 и так далее. Иными словами разменник купюр
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2014, 08:14     Функция разменник
Посмотрите здесь:

C++ Функция
C++ Функция...
функция C++
Функция C++
C++ Функция
Функция в с++ C++
Функция C++
Функция try C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 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
Миниатюры
Функция разменник  
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 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
Yandex
Объявления
06.04.2014, 10:28     Функция разменник
Ответ Создать тему
Опции темы

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