Привіт. Виконую завдання: Дано інформацію про готель (скільки чоловік і в якому номері
проживають), де i – номер корпусу, j – номер поверху, k – номер кімнати.
Визначити різницю між кількістю зайнятих та порожніх номерів у n-му
корпусі на z-му поверсі використовуючи динамічне виділення пам’яті. Для звертання до елементів
масивів застосувати адресну арифметику.
На вигляд ніби все гаразд, але при компіляції похибка (Unhandled exception at 0x00007FF68B812845 in labb5.exe: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF.).Можливо це щось банальне і просте, але тлише недавно почав вичати програмування і цього можу не знати. На перед дякую!
#include <iostream> using namespace std; int main() { int i = 0, j = 0, k = 0; do { cout << "\nHow much body of buildings?: "; cin >> i; } while (i < 0); do { cout << "\nHow much floors?: "; cin >> j; } while (j < 0); do { cout << "\nHow much rooms?: "; cin >> k; } while (k < 0); int*** Hotel = new int** [i]; for (int b = 0; b < i; b++) { Hotel[i] = new int* [j]; for (int f = 0; f < j; f++) { Hotel[i][j] = new int[k]; } } for (int b = 0; b < i; b++) { cout << "\nBody of the building " << b + 1 << " : "; for (int f = 0; f < j; f++) { cout << "\nFloor " << f + 1 << " : "; for (int r = 0; r < k; r++) { do { cout << "\nRoom " << r + 1 << " : "; cin >> *(*(*(Hotel + b) + f) + r); ---------------Похибку показує тут. } while (6 < (*(*(*(Hotel + b) + f) + r)) < 0); } } } short int n, z, e = 0, f = 0, d; cout << "\nDifference between: \n"; do { cout << "\nBody of the building: "; cin >> n; } while (n > i); do { cout << "\nFloor: "; cin >> z; } while (z > j); for (int r = 0; r < k; r++) { if (*(*(*(Hotel+n)+z)+r) >= 1) { f++; } if (*(*(*(Hotel+n)+z)+r) == 0) { e++; } } d = f - e; cout << "\nDifference between filled and empty rooms is: " << d << endl; cout << "Full: " << f << endl; cout << "Empty: " << e << endl; for (int b = 0; b < i; b++) { for (int f = 0; f < j; f++) { for (int r = 0; r < k; r++) { delete[] Hotel[k]; } delete[] Hotel[i][j]; } delete[] Hotel[i]; } delete[] Hotel; system("pause"); return 0; }
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.