2016-04-02 231 views
-3

我有下面的代码计算一个数字的阶乘尾随零数。该程序运行的第一个测试用例是10,但是当相同的代码运行17时,它会在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

没有必要计算因子!尾随零可以仅在数字的帮助下计算。 –