2016-04-02 10 views
-3

数字の階乗で末尾のゼロの数を計算する次のコードがあります。プログラムは最初のテストケースが10で実行されますが、同じコードが実行されたときにはCでSIGFPEエラーが表示されます。 誰かが間違っている場所を教えてもらえますか?間違って何CのSIGFPEエラー?

#include<stdio.h> 
#include<math.h> 
int main(){ 
    int n,i=1,j,sum=0,l; 
    scanf("%d",&n); 
    while((n/(5^i))>1) 
    { 
     j=(n/(5^i)); 
     i++; 
     sum=sum+j; 
    } 
    printf("%d",sum); 
    return 0; 
} 
+1

デバッガでプログラムをステップ実行し、値を分析して、間違っている場所を見つけます。また、間違った言語にタグを付けないでください –

答えて

0

あなたはオペレータ^間違った方法を使用していることである。これは、電力事業者が、ビット単位XOR演算子ではありません。 Cには演算子はありませんが、pow()は数学ライブラリとして機能します。

他の方法で...階乗を計算する場所は?

+0

ありがとう!魅力的に働いた。どのような愚かな間違いを指摘してくれてありがとう:) –

+1

階乗を計算する必要はありません!末尾のゼロは、数値の助けを借りて計算することができます。 –