Почему этот код выводится даже до чтения ввода? - PullRequest
0 голосов
/ 14 декабря 2018

Мой код ниже выводит 0, значение max_explode, еще до того, как прочитал мои данные.Почему это происходит?

#include <iostream>
#include <vector>
#include <algorithm>
#define MAX 100
using namespace std;

int N,cnt=0;
vector<int> arr;
bool seen[MAX+1];
int main()
{
  for (int i = 0; i < N; i++) seen[i]=false;
  int max_explode=0;
  for (int i = 0; i < N; i++)
  {
    int cow;
    cin >> cow;
    arr.push_back(cow);
  }
  sort(arr.begin(),arr.end());
  cout << max_explode << "\n";
  return 0;
}

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

В вашей 7-й строке есть небольшая проблема, чтобы быть точным.Вы определили переменную N, но не инициализировали ее значение.

0 голосов
/ 14 декабря 2018

Вы читаете ввод в цикле:

for (int i = 0; i < N; i++)
{
  int cow;
  cin >> cow;
  arr.push_back(cow);
}

Однако N никогда не инициализируется явно.Поскольку это глобальная переменная, она автоматически инициализируется как 0, и ваш цикл никогда не запускается.

...