почему я получаю ошибку нарушения доступа c ++? - PullRequest
0 голосов
/ 27 октября 2018

Я получаю ошибку 0xc0000005 (ошибка нарушения прав доступа), где я ошибаюсь в этом коде?я не мог отладить эту ошибку.Пожалуйста, помогите мне.

Вопрос в том,

Формально, учитывая стену бесконечной высоты, изначально неокрашенную.Происходит N операций, а в i-й операции стена окрашивается до высоты Hi цветом Ci.Предположим, что в j-й операции (j> i) стена окрашивается до высоты Hj цветом Cj, так что Hj> = Hi, цвет Cith на стене скрыт.В конце N операций вы должны найти количество различных цветов (> = 1), видимых на стене.

#include<iostream>
#include <bits/stdc++.h>
#include <algorithm>
using namespace std;

int main()
{
   int t;
   cin>>t;
   for(int tt= 0;tt<t;tt++)
   {
       int h,c;
       int temp = 0;
       cin>>h>>c;
       int A[h], B[c];
       vector<int> fc;
       for(int i = 0;i<h;i++)
       {
          cin>>A[i];
       }
       for(int j =0;j<h;j++)
       {
           cin>>B[j];
       }
       if(is_sorted(A,A+h))
       {
           return 1;
       }
       if(count(A,A+h,B[0]) == h)
       {
           return 1;
       }


       for(int i = 0;i<h;i++)
       {

          if(A[i]>=temp)
          {
              temp = A[i];

          }
          else
          {
              if(temp == fc[fc.size()-1])
              {
                  fc[fc.size()-1] = B[i];
              }
              else
              {
                  fc.push_back(B[i]);
              }
           }
         }


     }
  }

1 Ответ

0 голосов
/ 27 октября 2018

Существует несколько проблем.

При чтении значений в B ваша проверка цикла - j<h.Сколько элементов в B?

Вы позже посмотрите на fc[fc.size()-1].Это неопределенное поведение, если fc пусто и является вероятным источником вашей проблемы.

Другие проблемы:

  1. Не используйте #include <bits/stdc++.h>
  2. Избегайте using namespace std;
  3. Объявления переменных, такие как int A[h], где h - переменная, не являются стандартными C ++.Некоторые компиляторы поддерживают их как расширение.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...