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

Подбор блоков в списке - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ очередь http://www.cyberforum.ru/cpp-beginners/thread643133.html
Что то никак не получается разобраться. Есть база данных клиентов банка. Создать очередь клиентов приоритет которых будет по количеству денег на счету. То есть я так понимаю что нужен двумерный массив в которых i будет идентификатором, а j состоянием счета. При добавлении нового клиента он сразу становится на свое место по состоянию счета. Но дальше как то не идет.
C++ Проблеми с glut.h Здраствуйте уважаемие форумчане. У меня возникла проблема при установке библиотек и модулей OpenGL а именно glut.h. У меня Dev-C++ 4.9.9.2 . Порядок установки : 1) Скопировал файл glut.h в папку include/GL 2) файл glut32.lib в папку lib 3) файл glut32.dll в папки system и system32 Вроде все правильно но при компиляции: #include <GL/glut.h> #include <conio.h> http://www.cyberforum.ru/cpp-beginners/thread643108.html
Сортировка простыми включениями C++
Есть массив, его нужно отсортировать простыми включениями(вставками). У меня получилась вот такая вот программа, но выдаёт не совсем корректную информацию, выдаёт в начале массива 0 и не все элементы выводит. #include <iostream> #include <ctime> #include <iomanip> using namespace std; int array; void insertionSort(int *, int); // прототип функции сортировки вставками int main(int...
C++ указатели и ссылки - головная боль!
Как вы уже догадались из названии темы, никак не пойму работу указателей и ссылок... Где нужно их инкриментировать, и как ссылаются на переменные (и т.д.). Уважаемые форумчане, объясните плиз подробней их функциональность и работоспособность... У меня головная боль!:wall:
C++ Работа с данными http://www.cyberforum.ru/cpp-beginners/thread643040.html
Помогите решить задачу: Напишите программу которая выдавала бы запрос на ввод кол-ва секунд в виде целого значения (используйте тип long), и затем отображала бы эквивалентное значение в сутках, часах, минутах и секундах. Для представления кол-ва часов в сутках, кол-ва минут в часе и кол-ва секундв минуте используйте символьлные константы. пример результата выполнения программы выглядит...
C++ Исследование управляемого движения искусственного спутника Земли здравствуйте, помогите пожалуйста написать программу, как видно из названия задача довольно не простая и я уже всю голову сломал как все это описывать! формулировка задачи содержится в файле по ссылке: http://narod.ru/disk/60042976001.b38c6b3f4581f2f65e2afe44a1b4362a/%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5.docx.html P.S. Если несложно, напишите программу в visual studio. подробнее

Показать сообщение отдельно
Glam_Man
6 / 6 / 0
Регистрация: 15.10.2011
Сообщений: 73
27.08.2012, 19:46     Подбор блоков в списке
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
#include <iostream>
#include <fstream>
#include <locale.h>
#include <stdio.h>
using namespace std;
struct Node
{
    int elem;           //элемент списка
    Node *next;     //указатель на следующий элемент списка
} *node;
int list_select(Node *node, int NumberOfElements, int node_counter)
{
    int minimum = 1;                                        //Единственный минимум
    int i = 0;
    while(i < node_counter)
    {
        if(NumberOfElements!=node[i].elem)                      //Если не подобран подходящий блок, сравниваем дальше
        {
            if(NumberOfElements<node[i].elem)
            {
                minimum = node[i].elem;                             //Присвоение минимума
            }
        }
        else
        {
            return node[i].elem;                            //Блок успешно подобран, возвращаем размер текущего блока
        }
        i++;
    }
    if (minimum = 1)
    {
        return 0;                                                   //Подходящий блок не найден
    }
    return minimum;                                                 //Возвращаем размер минимального блока
}
int input_form_file(Node *&node,  int &node_counter)
{
    ifstream f;
    char filename[100];                     //Память под имя файла
    int i = 0;                              //Счётчик цикла
    int temp;                               //Временная переменная для хранения размера блока в цикле
    Node *fir = 0;
    cout << "Введите номер теста" << endl;
    cin >> filename;
    f.clear();
    f.open(filename);
    if(!f)
    {
        return 0;
    }
    f >> node_counter;                      //Количество блоков в списке
    while(i < node_counter)
    {
        f >> temp;                          //Помещаем из файла во временную переменную текущий размер блока
        node = new Node;                    //Выделяем память для нового узла
        node[i].elem = temp;                    //Присваиваем узлу с индексом
        node -> next = fir;                 //Следующий узел указывает на fir
        fir = node;                         //Который является новым узлом
        i++;
    }
    f.close();
    return 1;
}
int menu()
{
    setlocale(LC_ALL,"russian");
    char c;
    int NumberOfElements;
    int node_counter;
    while(true)
    {
        system("cls");
        printf("Работа о списками\n\n");
        printf("1.Добавление списков из файла\n");
        printf("2.Подбор оптимального по размеру блока\n");
        printf("3.Выход из программы\n");
        fflush(stdin);
        scanf("%c", &c);
        switch(c)
        {
            case '1':
                if(input_form_file(node, node_counter))
                {
                    cout << "Файл введён" << endl;
                }
                else
                {
                    cout << "Некорректные данные в файле" << endl;
                }
                system("pause");                                        //На этом шаге вылезает ошибка
                break;
            case '2':
                cout << "Введите размер требуемого блока" << endl;
                cin >> NumberOfElements;
                if(list_select(node, NumberOfElements, node_counter))
                {
                    cout << "Блок подобран, его размер" << list_select(node, NumberOfElements, node_counter) << endl;
                }
                else
                {
                    cout << "Не удалось подобрать блок подходящего размера, ибо он превышает размер всех блоков" << endl;
                }
                system("pause");
                break;
            case '3':
                return 0;
                break;
        }
    }
}
int main()
{
    menu();
    return 0;
}
ОС Windows инициировала точку останова в Project.exe.

Это может быть вызвано повреждением кучи и указывает на ошибку в Project.exe или в одной из загруженных им DLL.

Возможной причиной так же может быть нажатие пользователем клавиши F12, когда фокус принадлежит Project.exe

Выведенное на экран окно содержит дополнительные данные для диагностики ошибки
Не знаю, как устранить ошибку
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru