-2
我試圖提交此代碼的問題在hackerearth上,我得到 這SIGSEGV Runtime error
。我讀了關於這個錯誤,但我無法讓我的代碼工作。有人說這是由於無效的內存引用,數組或索引超出限制的動態初始化。SIGSEGV - 運行時錯誤
#include <stdio.h>
long long int f(long long int);
long long int gcd(long long int,long long int);
int main(){
long long int n,q,i;
scanf("%lld",&n);
long long int a[n];
for(i=1;i<=n;i++){
scanf("%lld",&a[i]);
}
scanf("%lld",&q);
while(q--){
char ch;
long long int x,y,sum=0;
scanf("%c%lld%lld",&ch,&x,&y);
if(ch == 'U'){
a[x] = y;
}
else if(ch == 'C'){
for(i=x;i<=y;i++){
sum = (sum + f(a[i]))%1000000007;
}
}
printf("%lld\n",sum);
}
return 0;
}
long long int f(long long int t){
long long int i;
long long int res;
for(i=1;i<=t;i++){
res = (res + gcd(i,t))%1000000007;
}
return res;
}
long long int gcd(long long int x,long long int t){
int i;
long long int divisor=1;
for(i=1;i<=x;i++){
if(x%i == 0 && t%i == 0){
divisor = i;
}
}
return divisor;
}
哪條線它segfaults? – fluter
您正在填寫VLA,我們必須瞭解該計劃的輸入內容。 –
但是是的,這個錯誤將是一個可能的原因 –