运行时错误的问题: - https://www.codechef.com/JUNE17/problems/NEO01获得以下代码
我的解决方案,而根据我应该是上述问题的解决方案,但我经常收到一个RTE。
#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,以节省时间,只是忘了在使用scanf函数添加&初学者。
虽然我的代码在Dev-C++ 5.11上正常工作,但它显示运行时错误(SIGSEGV),我不知道为什么会发生这种情况。
您需要了解更多关于如何使用['scanf'](http://en.cppreference.com/w/c/io/fscanf)。我建议[找到一本很好的初学者书](http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list)来学习编程C,而不是使用像codechef这样的站点。 –
添加一些错误检查。首先,'scanf'返回一个值,告诉你它是否找到了正确的数值。没有你的输入,任何人都很难确切地知道你的程序在哪里失败,所以你至少应该在你的问题中加上这个。 –
更正了它,使用Codechef ide仍然收到错误RE(SIGSEGV)。 –