为什么在读取输入之前就输出此代码?

时间:2018-12-14 02:21:51

标签: c++ input io output

下面的代码在读入我的输入之前就输出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 :(得分:1)

您循环读取输入内容:

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

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

答案 1 :(得分:0)

在您的第7行中有一个小问题需要具体说明。您已经定义了变量N,但尚未为其初始化值。