首页 > 解决方案 > Why does this code output before even reading input?

问题描述

My code below outputs 0, the value of max_explode, before even reading in my input. Why is this happening?

#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;
}

标签: c++inputiooutput

解决方案


您在循环中读取输入:

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

但是,N从未显式初始化。由于它是一个全局变量,它会自动初始化为0,并且您的循环永远不会运行。


推荐阅读