为什么会出现运行时错误?代码仍然给我正确的输出

时间:2019-08-01 06:13:48

标签: c runtime-error

为什么运行此代码时出现运行时错误? 这是一个测试输入案例:

5 3
1 2 100
2 5 100
3 4 100
#include <stdio.h>
long long int s[999999];
// Complete the arrayManipulation function below.
int main()
{
    int n,m,i;
    long int a,b,val,cval;
    scanf("%d %d",&n,&m);
    for(;m>0;m--)
    {
        scanf("%ld %ld %ld",&a,&b,&val);
        s[a-1]+=val;
        if(b!=n)
            s[b]-=val;
    }
    val=s[0];
    cval=s[0];
    for(i=1;i<n;i++)
    {
        cval+=s[i];
        if(val<cval)
            val=cval;
    }
    printf("%ld",val);
    return val;
}

预期结果与实际结果匹配,但编译器给出运行时错误。

1 个答案:

答案 0 :(得分:2)

应用程序的return语句通常应返回EXIT_SUCCESS(0)或EXIT_FAILURE(1)。

您返回一个非常正的值-这对于Shell来说是一个错误。只需将返回值更改为“ 0”或EXIT_SUCCESS即可消除该“运行时错误”。

另请参阅: What should main() return in C and C++?