Пожалуйста, кто-нибудь может сказать мне, что не так в этом коде. Я понятия не имею о подобных исключениях. Компилятор только показывает это - Исключение: нарушение прав чтения. a было 0x1D54112. Произошло ли это из-за оператора if внутри al oop, который также находится внутри другого l oop ?? Вот код -
#include<iostream>
using namespace std;
int main()
{
int n;
cout << "Enter the number of walkers - ";
cin >> n;
int* a = new int[n];
cout << endl << "Enter the distances of walkers from Rick : ";
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
int temp;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n - 1; j++)
{
if (a[j] > a[j + 1])
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
cout << endl << "The distance of walkers from Rick are - ";
for (int i = 0; i < n; i++)
{
cout << a[i] << " ";
}
int c = 0, i = 0, k = 0;
while (c == 0 || i < n)
{
a[i] = 0; //exception is being shown here.
for (int j = i+1; j < n; j++)
{
a[j] -= 1; //and here too!!.
if (j % 6 == 0) a[j]--;
if (a[j] == 0)
{
c = 1;
k = j;
}
}
i++;
}
if (c == 0) cout << endl << "Rick now go and save Carl and Judas" << endl;
else if (c == 1)
{
cout << endl << "Goodbye Rick" << endl;
cout << "He was able to kill " << k << " walkers. " << endl;
}
}