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

Подскажите, как дополнить код - C++

Восстановить пароль Регистрация
 
Kristin_777
Сообщений: n/a
26.12.2011, 06:40     Подскажите, как дополнить код #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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include "stdafx.h"
#include <iostream>
#include <fstream>
 
using namespace std;
 
int *C = 0, *E = 0, n = 0;//Глобальные переменные 
 
bool isUsed(int i, int* used, int size)//Функция проверяет входит ли элемент в масив
{
    for(int j = 0; j < size; j++)
    {
        if(used[j] == i)
            return true;
    }
 
    return false;
}
 
int balman(int v, int* used, int size = 0)// функция подсчета минимальной стоимости
{
    int min = -1;
    if(v <= 0)
        return 0;
 
    for(int i = 0; i < n; i++)
    {
        if(!isUsed(i, used, size))//Если номер машины еще не использовался
        {
            used[size] = i;//Добавляем в масив использованных машин еще одно значение.
            int f = balman(v - C[i], used, size + 1) + E[i];//вызываем функцию для меньшего значения обьема
            if( (f < min) || (min == -1))//и если значение меньше минимума или это первое вычисленное значение, тогда присваеваем min новое значение.
            {
                min = f;
            }
        }
    }
 
    return min;
}
 
void main()
{
    ifstream in("input.txt", ios_base::in);//Открываем поток для считывания из файла "input.txt"
 
    int x1, x2, s1, s2;
    in >> x1;//Считываем 
    in >> s1;
    in >> x2;
    in >> s2;
    in >> n;
    C = new int[n];
    E = new int[n];
 
    int sum = 0;
    for(int i = 0; i < n; i++)//Считываем из файла n значений для C и E
    {
        in >> C[i];
        in >> E[i];
        sum += C[i];
    }
    in.close();//Закрываем поток
 
    if(sum > (x1*s1 + x2*s2))
        cout << "Minimum price: " << balman((x1*s1 + x2*s2), new int[n]) << endl;
    else
        cout << "The total volume of cars less than the volume of cargo." << endl;
    cin.get();
 
    
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2011, 06:40     Подскажите, как дополнить код
Посмотрите здесь:

Удалить элементы после запятой (дополнить код) C++
C++ Использование двухмерных массивов! (дополнить код: показать, сколько раз каждое число используется в массиве )
Связные списки, дополнить код C++
Подскажите как отладить код (связанные списки) C++
нужно дополнить - исправить код C++
Дополнить код C++
C++ Вставка нового элемента в массив (дополнить код)
Вставка нового элемента в двумерный динамический массив дополнить код C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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