【问题标题】:Why am I not able to input anything?为什么我不能输入任何东西?
【发布时间】:2021-03-04 18:35:54
【问题描述】:

我认为我编写了正确的代码,但我无法输入任何内容。请帮帮我。

问题 - https://codeforces.com/problemset/problem/25/A

我的代码-

#include<iostream>
using namespace std;

int main(){
    int n,count(0);
    int arr[n];
    for(int i=0;i<n;++i){
        cin>>arr[i];
    }
    for(int i=2; i<n; ++i){
        if(arr[i]-arr[i-1] != arr[i-1]-arr[i-2]){
            ++count;
        }
    }
    cout<<count<<endl;
    return 0;
}

【问题讨论】:

  • 注意: n 此处未初始化,使用arr[n] 很危险,会导致 UB。此外,可变长度数组 (VLA) 不是 C++ 标准的一部分。
  • 你认为这段代码会输入多少个数字?
  • 当您需要存储值但数量在编译时未知时使用std::vector。在编译时知道容量时使用数组。

标签: c++ arrays input


【解决方案1】:

这可能是您的 int n 变量未初始化的未定义行为。将 n 初始化为显式值允许按预期输入。

【讨论】:

  • "可能是未定义的行为" 这不仅是可能的。 由于未定义的行为。根据标准,简单地读取未初始化的变量会调用未定义的行为。
猜你喜欢
  • 1970-01-01
  • 2020-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-11
  • 2018-04-01
  • 1970-01-01
相关资源
最近更新 更多