C-为什么我会遇到运行时错误?该代码仍为我提供正确的输出



为什么在运行此代码时会遇到运行时错误?这是一个测试输入案例:

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

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

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

您返回一个非常正值的值 - 这是外壳的手段,这是一个错误。只需将返回值更改为" 0"或EXIT_SUCCESS即可删除"运行时间错误"。

另请参见:c和c 中的main((应返回什么?

最新更新