在以下代码上获取运行时错误

时间:2017-06-06 13:11:30

标签: c runtime-error

问题: - https://www.codechef.com/JUNE17/problems/NEO01

我的解决方案,根据我的说法应该是上述问题的正确解决方案,但我不断获得RTE。

https://ideone.com/COnlog

#include<stdio.h>
int main()
{
    long arr[10000];
    int t,n,p=0;
    scanf("%d",&t);

    while(t--)
    {
        long hap1=0,hap2=0;
        scanf("%d",&n);
        for(int i=0;i<n;i++)
        {
            scanf("%d",&arr[i]);
        }

        for(int i=0;i<n;i++)
        {
            if(arr[i]>=0)
            {
                hap1+=arr[i];
                p++;
            }
            else
            {
                hap2+=arr[i];
            }   
        }
        printf("%d\n",hap1*p+hap2);
    }
    return 0;
} 

编辑:对不起,我是初学者,通常使用cout和cin,使用scanf和printf来节省时间,只是忘了添加&amp;使用scanf时。

虽然我的代码在Dev-C ++ 5.11上工作正常,但它显示运行时错误(SIGSEGV),我不知道它为什么会发生。

2 个答案:

答案 0 :(得分:0)

您错误地使用了scnaf。将scanf("%d",t);更改为scanf("%d",&t);

答案 1 :(得分:0)

问题中N的约束是1≤N≤10^ 5因此你需要声明一个[size],size = 10 ^ 5.