#include
int sepnum(int n,int m[])
{
int i=0,ten=1;
while(n/ten!=0){
m[i]=n/ten%10;
i++;
ten=ten*10; }
return i;
}
int main()
{
int num,n,m,i,j,sum,a[20];
scanf("%d",&m);
for(i=0;i
scanf("%d",&num);
n=sepnum(num,a);
for(j=0,sum=1;j
sum=sum*a[j];
printf("%d\n",sum);
}
return 0;
}
在dev C++上執行過沒問題,陣列大小也改過10或15都沒辦法
RE (SIGSEGV)
執行時期錯誤
記憶體區段錯誤! Segmentation fault
這個..
可以理解為access violation?
即是你access宜告陣列大小以外的元素
如你宣告了: int a[1000]
你的程式運行時的某一部份access a[1000],a[1001],a[-1]等
以上都是不允許的
另一可能會是在main local開一個過大的陣列
如int a[10000000]
這是不允許的, 要放在global才開到
如果global也開不到
那即是不能這樣寫,你要找一個更好的演算法
再另一個可能會是
uninitialized variable
即是你在local開了新的variable
而你的程式access該未初始化的variable
也會有這個錯誤? (不肯定