請問一下,我在我的電腦驗證都是ok,但上傳時卻遇到以下這個錯誤訊息,我該如何解決,謝謝…
執行時發生錯誤 (SIGSEGV)(11)!!
Segmentation fault, an address reference boundary error.(記憶體區段錯誤)
可能原因為:
* 通常為使用超過陣列範圍
* 指標指向不正確位址!
* 陣列初始化不正確!
* 嘗試在執行時期定義陣列長度!
sh: line 1: 27338 程式記憶體區段錯誤 /tmp/code_581286.exe <a010.in >/tmp/code_581286.out
#include <stdio.h>
long int value(long int num)
{
long int i;
for(i=2;i<num/2;i++){
if(num%i==0)
{
return 0;
break;
}
else if(num/2==i+1)
{
return 1;
break;}
}
}
long int main(void)
{
long int a,i,j=0,k,index=0,l;
long int sum[20]={0};
long int summ[20]={0};
while(scanf("%d",&a)!=EOF)
{
if (!value(a))
{
for (i=2;i<a;i++,j++)
{
l=0;
while(!(a%i))
{
sum[j]=i;
summ[j]=++l;
a=a/i;
}
if ((sum[j]!=0 )&& (summ[j]>1))
{
printf("%d^%d * ",sum[j],summ[j]);
}
else if(sum[j]!=0)
{
printf("%d * ",sum[j]);
}
if ( value(a))
{
printf("%d",a);
break;
}
}
}
else
{
printf("%d",a);
}
}
return(0);
}