Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 48
1

Ошибка памяти при решение задачи на классы

21.10.2014, 19:39. Просмотров 966. Ответов 6
Метки нет (Все метки)


Задача: Нужно рассчитать кол-во мест в самолете после промежуточной посадки между пунктами А и Б. То есть самолет на 300 мест вылетел из аэропорта, сел в другом, люди вышли и на него взошли еще люди. Сколько будет свободных мест в самолете после данных махинаций.

Ошибка:
Необработанное исключение по адресу 0x0F66D745 (msvcr110d.dll) в ConsoleApplication22.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0x00000000. Происходит она после ввода первого числа(переменная number)

C++ (Qt)
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
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
 
using namespace std;
class Aerobus {
private:
    int number;
    int first_class,second_class, third_class;
    int fc_exit,sc_exit,tc_exit;
    int sale1,sale2,sale3;
    int fseat,sseat,tseat;
 
public:
    void set_number (int number_r) // номер рейса
    {
        number = number_r;
    }
 
    int get_number ()
    {
        return number;
    }
 
    void set_amount_f (int f_c) //кол-во в 1ом классе
    {
        first_class = f_c;
    }
 
    int get_amount_f ()
    {
        return first_class;
    }
 
    void set_amount_s (int s_c) //кол-во во 2ом классе 
    {
        second_class = s_c;
    }
    
    int get_amount_s ()
    {
        return second_class;
    }
 
    void set_amount_t (int t_c) //кол-во в 3ем классе
    {
        third_class = t_c;
    }
 
    int get_amount_t ()
    {
        return third_class;
    }
 
    void set_amount_fc_e (int fce) //кол-во вышедших из 1го класса
    {
        fc_exit = fce;
    }
 
    int get_amount_fc_e ()
    {
        return fc_exit;
    }
 
    void set_amount_sc_e (int sce) //кол-во вышедших из 2го класса
    {
        sc_exit = sce;
    }
 
    int get_amount_sc_e ()
    {
        return sc_exit;
    }
 
    void set_amount_tc_e (int tce) //кол-во вышедших из 3го класса
    {
        fc_exit = tce;
    }
 
    int get_amount_tc_e ()
    {
        return tc_exit;
    }
 
    void set_amount_s1 (int new_sale1) //кол-во проданных 1го класса
    {
        sale1 = new_sale1;
    }
 
    int get_amount_s1 ()
    {
        return sale1;
    }
 
    void set_amount_s2 (int new_sale2) //кол-во проданных 2го класса
    {
        sale2 = new_sale2;
    }
 
    int get_amount_s2 ()
    {
        return sale2;
    }
 
    void set_amount_s3 (int new_sale3) //кол-во проданных 3го класса
    {
        sale3 = new_sale3;
    }
 
    int get_amount_s3 ()
    {
        return sale3;
    }
 
    void set_score1 (int seatf) // свободные места первого класса
    {
        fseat = seatf;
    }
 
    int get_score1 ()
    {
        return fseat;
    }
 
    void set_score2 (int seats)
    {
        sseat = seats;
    }
 
    int get_score2 ()
    {
        return sseat;
    }
 
    void set_score3 (int seatt)
    {
        tseat = seatt;
    }
 
    int get_score3 ()
    {
        return tseat;
    }
 
 
    };
 
int main()
{
    Aerobus aerobus;
 
    int number=0;
    cout << "number" << endl;;
    scanf_s("%d", number);
    //cin >> number >> endl;
    aerobus.set_number(number);
 
    int first_class=0,second_class=0, third_class=0;
    cout << "First class" << endl;
    scanf_s("%d", first_class);
    //cin >> first_class >> endl;
 
    cout << "second class" << endl;
    scanf_s("%d", second_class);
    //cin >> second_class >> endl;
 
    cout << "third class" << endl;
    scanf_s("%d", third_class);
    //cin >> third_class >> endl;
 
    aerobus.set_amount_f(first_class);
    aerobus.set_amount_s(second_class);
    aerobus.set_amount_t(third_class);
 
    int fc_exit=0,sc_exit=0,tc_exit=0;
    cout << "First class exit" << endl;
    scanf_s("%d", fc_exit);
    //cin >> fc_exit >> endl;
 
    cout << "second class exit" << endl;
    scanf_s("%d", sc_exit);
    //cin >> sc_exit >> endl;
 
    cout << "third class exit" << endl;
    scanf_s("%d", tc_exit);
    //cin >> tc_exit >> endl;
 
    aerobus.set_amount_tc_e(fc_exit);
    aerobus.set_amount_sc_e(sc_exit);
    aerobus.set_amount_tc_e(tc_exit);
 
    int sale1=0,sale2=0,sale3=0;
    cout << "First class sale" << endl;
    scanf_s("%d", sale1);
    //cin >> sale1 >> endl;
 
    cout << "second class sale" << endl;
    scanf_s("%d", sale2);
    //cin >> sale2 >> endl;
 
    cout << "third class sale" << endl;
    scanf_s("%d", sale3);
    //cin >> sale3 >> endl;
 
    aerobus.set_amount_s1(sale1);
    aerobus.set_amount_s2(sale2);
    aerobus.set_amount_s3(sale3);
     
 
    int fseat=0,sseat=0,tseat=0;
    fseat=first_class-fc_exit+sale1;
    sseat=second_class-sc_exit+sale2;
    tseat=third_class-tc_exit+sale3;
 
    aerobus.set_score1(fseat);
    aerobus.set_score2(sseat);
    aerobus.set_score3(tseat);
 
    cout << "Nomep peuca - "  << aerobus.get_number() << endl << "Free seats" << 
        endl << "First class: " << endl <<aerobus.get_score1() << endl << "second class: " <<aerobus.get_score2() << endl
        << "third class: " << aerobus.get_score3()<< endl;
 
 
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2014, 19:39
Ответы с готовыми решениями:

Решение задачи Р.Лафоре, объекты и классы
Замахался уже... Выдает ошибку проблема с static int count; вот этой локальгой статической...

Решение задачи Коши - ошибка
Ввожу пример из методички, а выдает ошибку Error, (in dsolve/numeric/process_input) indication of...

Решение задачи коммивояжёра при помощи перебора
#include &lt;iostream&gt; using namespace std; int main() { setlocale (LC_ALL, &quot;Russian&quot;); int...

Решение задачи DNS при двух Серверных машин
Добрый день народ! У меня вот какая проблема, в компании где я работаю есть машина с ОС win...

6
Модератор
Эксперт С++
10456 / 8710 / 5261
Регистрация: 18.12.2011
Сообщений: 23,264
21.10.2014, 19:56 2
Лучший ответ Сообщение было отмечено Jacky09 как решение

Решение

Цитата Сообщение от Jacky09 Посмотреть сообщение
scanf_s("%d", number);
C++
1
scanf_s("%d", &number)
и т.д.

А с какого припеку Вы стали пользоваться Сишным вводом?
Написали бы cin>>number; (без >>endl естественно) и не было бы такой ошибки!
0
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 48
21.10.2014, 20:00  [ТС] 3
Изначально так и было, но при таком написании возникает данная ошибка : бинарный ">>": не найден оператор, принимающий правый операнд типа "overloaded-function"
0
Модератор
Эксперт С++
10456 / 8710 / 5261
Регистрация: 18.12.2011
Сообщений: 23,264
21.10.2014, 20:02 4
Ну так при чем там >>endl ?
1
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 48
21.10.2014, 20:18  [ТС] 5
Ой блин
Спасибо, но теперь в конце вылетает
Вот с такой ошибкой :
C++ (Qt)
1
2
3
4
5
6
7
"ConsoleApplication22.exe" (Win32). Загружено "C:\Users\Джеки\Documents\Visual Studio 2012\Projects\ConsoleApplication22\Debug\ConsoleApplication22.exe". Символы загружены.
"ConsoleApplication22.exe" (Win32). Загружено "C:\Windows\SysWOW64\ntdll.dll". Невозможно найти или открыть файл PDB.
"ConsoleApplication22.exe" (Win32). Загружено "C:\Windows\SysWOW64\kernel32.dll". Невозможно найти или открыть файл PDB.
"ConsoleApplication22.exe" (Win32). Загружено "C:\Windows\SysWOW64\KernelBase.dll". Невозможно найти или открыть файл PDB.
"ConsoleApplication22.exe" (Win32). Загружено "C:\Windows\SysWOW64\msvcp110d.dll". Символы загружены.
"ConsoleApplication22.exe" (Win32). Загружено "C:\Windows\SysWOW64\msvcr110d.dll". Символы загружены.
Программа "[7624] ConsoleApplication22.exe" завершилась с кодом 0 (0x0).
0
5479 / 4874 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
21.10.2014, 21:08 6
Цитата Сообщение от Jacky09 Посмотреть сообщение
но теперь в конце вылетает
Вот с такой ошибкой :
Это не вылетает, и это не ошибка, а нормальный запуск .exe:
Цитата Сообщение от Jacky09 Посмотреть сообщение
завершилась с кодом 0 (0x0).
1
Модератор
Эксперт С++
10456 / 8710 / 5261
Регистрация: 18.12.2011
Сообщений: 23,264
21.10.2014, 22:00 7
Распространенные ошибки
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.10.2014, 22:00

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Ошибка при загрузки изображений с карты памяти при повороте экрана
Здравствуйте! Вопрос в следующем. Загружаю в активити фотки с камеры. Имя файла передаю следующим...

Ошибка памяти при выполнении, при компиляции не выводит ошибки
ПОмогите плс программа вводит строку символов до точки, а после вычисляет процент согласных в этой...

Аналитическое решение решение краевой задачи для ОДУ второго порядка
Здравствуйте! Задача: Аналитически найти частное решение ОДУ. Изначально в частных производных, но...

задачи с двумерным массивом, решение должно быть похоже на решение 8-ми классника
Без рандома, все вводится с клавиатуры, без Inc, без Break и т.д. 1)Сколько учеников не имеет в...


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

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

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