代码在 Dev-C++ 中没有给我任何输出

The code doesn't gives me any output in Dev-C++

当我尝试在 Dev-C++ 中 运行 这段代码时。没有输出。但是当我 运行 它在任何在线编译器中时,代码 运行 很顺利。为什么它在 Dev-C++ 中不是 运行ning?

我已经在各种在线编译器中尝试 运行ning 它,运行ning 很顺利。

int main()
{
    int T;
    cin>>T;
    while(T--)
    {
        long long int N, K;
        cin>>N>>K;
        long long int arr[N];
        for(long long i=0; i<N; i++)
        {
            cin>>arr[i];
        }

        long long int max = INT_MIN;
        long long int dp[N];

        for(int i=N-1; i>=0; i--)
        {
            if((i+K)>=N)
            {
                dp[i] = arr[i];
            }

            else
            {
                dp[i] = (dp[i+K]+ arr[i]);
            }
        }

        for(int k=0; k<N; k++)
        {
            if (dp[k]>max)
            {
                max = dp[k];
            }
        }
        cout<<max<<endl;
    }
    getchar();
    return 0;
}

可能是因为 long long int arr[N]; 它在 DEV C++ 中是不可接受的 使用 std::vector<long long> arr(N); 代替它。

在 DEV C++ 5.11 版本中它很容易给出输出

#include<iostream>
#include<stdio.h>
#include<conio.h>


using namespace std;
int main()
{
    int T;


    cin>> T;
    while(T--)
    {
        long long int N, K;
        cin>>N>>K;
        long long int arr[N];
        for(long long i=0; i<N; i++)
        {
            cin>>arr[i];
        }

        long long int max = INT_MIN;
        long long int dp[N];

        for(int i=N-1; i>=0; i--)
        {
            if((i+K)>=N)
            {
                dp[i] = arr[i];
            }

            else
            {
                dp[i] = (dp[i+K]+ arr[i]);
            }
        }

        for(int k=0; k<N; k++)
        {
            if (dp[k]>max)
            {
                max = dp[k];
            }
        }
        cout<<max<<endl;
    }
    getchar();
    return 0;
}

我们来看看这行代码:

long long int arr[N]; 

因为 N 不是编译时常量,您正在尝试创建所谓的可变长度数组。可变长度数组在较新版本的 C 中有效,但在 C++ 中无效。它确实 在 GCC 下编译为非标准扩展,这可能是它在在线编译器上编译的原因。

我们可以通过使用向量(来自#include <vector>)来做你想做的事

std::vector<long long int> arr(N); //Create a vector of size N 

您可以像使用数组一样使用向量。