我是c ++的初学者。这是我的代码。它在代码块中正常工作,但当我将其提交给codechef时,它显示运行时错误(SIGSEGV
)。请帮忙!
#include<iostream>
using namespace std;
int main()
{
long int n, m, x, temp, B1 = 0, B2 = 0;
long int arr[105];
cin >> n >> m;
for(int i = 1; i <= n; i++)
cin >> arr[i];
while(m--)
{
B1 = B2 = 0;
cin >> x;
temp = 1;
while(temp < x)
if((arr[x] - arr[temp]) > 0)
B1 = B1 + (arr[x] - arr[temp++]);
else
B2 = B2 + (arr[x] - arr[temp++]);
cout << B1 - B2 << endl;
}
}
答案 0 :(得分:5)
对于大小为N
的数组,有效索引介于0和N-1
之间。
改变这个:
for(int i=1;i<=n;i++)
对此:
for(int i=0;i<n;i++)
顺便说一下,你还没有指明你的计划的目的,但我猜你也应该将temp=1
改为temp=0
......