×

# Why do I get a SIGFPE?

 2 2 I keep getting SIGFPE error when i try to run my program. Why so? asked 22 Mar '13, 16:29 457●19●25●31 accept rate: 50%

 10 This is the easiest runtime error to debug - it is a floating point error. It is virtually always caused by a division by 0, so check any divisions or modulo operations in your code carefully. answered 22 Mar '13, 16:29 0★admin ♦♦ 19.8k●350●498●541 accept rate: 36%

# include<stdio.h>

long int fact(int); int main() { int t,n; scanf("%d",&t);

while(t--) { scanf("%d",&n); long int r,sum=0,mod=1000000007; for(r=0;r<=(long int)(n/2.0);r++) sum+=((fact(n)/(fact(r)fact(n-r)))%3); sum=2; if(n%2==0) sum-=((fact(n)/(fact(n/2)*fact(n/2)))%3);

printf("%ld\n",(sum%mod)); } return 0; }

long int fact( int n) { if(n==0||n==1) return 1; long int pro=1; while(n!=1) pro*=n--; return pro; }

i am getting the same SIGFPE error but cannot debug the program,can anyone please locate the bug

21
accept rate: 0%

 2 Your code fails for input: 1 68 This is because fact() function overflows resulting in fact(34)=0. Read about Integer Overflows: http://en.wikipedia.org/wiki/Integer_overflow answered 26 Feb '15, 23:42 9 accept rate: 0%
 2 SIGFPE may occur due to division by zero modulo operation by zero integer overflow (when the value you are trying to store exceeds the range) - trying using a bigger data type like long. SIFFPE is very easy to debug. answered 23 May '15, 14:11 12 accept rate: 0%

Why am i getting runtime here??

# include <stdlib.h>

long long int a,b,c=0; int calc(); int mod(); int main()

{

int t;

scanf("%d",&t);
while(t--)
{
scanf("%lld%lld",&a,&b);

printf("%lld\n",calc());

}
return 0;


} int mod(){

 if(a>b)
{
if(a%b==0)
{
return 1;
}
return 0;

}
else {
if(b%a==0)
{
return 1;
}
return 0;
}


} int calc() { // printf("a"); if(mod()==0) { while(a!=b) { a*=2; c++;

       }
return c;
}
while(mod())
{
if(a%2==0)
{
a/=2;
c++;
}
else{ a=(a-1)/2;
c++;
}
}}


1
accept rate: 0%

 0 It is a signal representing core dumped means if you do any invalid operation the you will get "SIGFPE" error. In case floating point error means division by 0 cause this error so please check your code and make sure that you are not operating this type of operation means make sure that you are not dividing by 0 answered 03 Sep '15, 21:29 2★ring1234 61●4 accept rate: 7%

# include<math.h>

int gcd(int n1, int n2) { int min,i, hcf;

min=(n1>n2)?n2:n1;

for(i=min; i>=1; --i)
{
if(n1%i==0 && n2%i==0)
{
hcf=i;
break;
}
}
// printf("%d\n",hcf);
return hcf;


}

int fd(int a, int b) { int count, i, j, total; count=total=0; for(i=a; i<=b; i++) { count=0; for(j=1; j<i; j++) if(gcd(i,j)==1) count++;

    if(i%count==0)
total++;
}
//printf("%d\n",total);


}

int main() { long long a,j, b,i=0,n, yes; scanf("%lld", &n); while(n--) { scanf("%lld%lld", &a,&b);

    yes=fd(a,b);
printf("%lld\n",yes);
}
return 0;


} why i m getting sigfpe error in this program..can any1 help??

6717
accept rate: 6%

# include<stdio.h>

main() { long int a,b,c,d,e,j,I,n; scanf("%ld",&a); for(I=0;I<a;i++) {="" scanf("%ld%ld",&b,&c);="" e="b*c;" for(j="e;j">1;j--) { n=j*j; if(e%n==0) { d=e/n; printf("%ld",d); break; } } } }I am getting sigfpe.Where is the problem in my code .Can any one to it???

11
accept rate: 0%

 0 Apart from other answers one more thing which causes this error is modulo operation by 1 answered 07 Mar '17, 23:02 4★sonu_628 420●8 accept rate: 10%
 0 #include  using namespace std; int main() { long long int n; cin>>n; long long int a[n+1],mul[n+1]={1}; mul[0]=1; for(long long int i=1;i<=n;i++) { cin>>a[i]; mul[i]=1; } for(long long int i=1;i<=n;i++) { mul[i]=mul[i-1]*a[i]; } long long int t; cin>>t; while(t--) { long long int re=1,li,ri,mi; cin>>li>>ri>>mi; re=(mul[ri])/(mul[li-1]); if(re>=mi) { re=re%mi; } cout<
 0 Why am I getting RUNTIME(SIGFPE) error? can anyone help?? Link to my code: https://www.codechef.com/viewsolution/13277608 Thanks in advance! answered 13 Apr '17, 01:58 1 accept rate: 0%
 0 Note:- In C++ if you fail to typecast the variables properly , you may end up facing a SIGFPE . I faced one as I was storing an int value in a vector of long long int ! answered 10 May '17, 19:54 4★annk_97 1 accept rate: 0%
 0 use if conditions t ocheck whether anything results in 0 or not answered 24 Jun '17, 20:16 21●4 accept rate: 0%
 0 why am i getting RUNTIME SIGFPE error? link to my code: https://www.codechef.com/viewsolution/18629624 answered 22 May '18, 18:24 3★ashishpm 10●2 accept rate: 0%
 0 @ashishpm Bro keep dividing the multiplication as its increasing as it is causing Integer Overflow..you are doing whole multiplication at once which is causing To extend the long long range making it negative. answered 23 May '18, 01:40 3●2 accept rate: 0%
 toggle preview community wiki:
Preview

By Email:

Markdown Basics

• *italic* or _italic_
• **bold** or __bold__
• image?![alt text](/path/img.jpg "title")
• numbered list: 1. Foo 2. Bar
• to add a line break simply add two spaces to where you would like the new line to be.
• basic HTML tags are also supported
• mathemetical formulas in Latex between \$ symbol

Question tags:

×214
×16

question asked: 22 Mar '13, 16:29

question was seen: 63,391 times

last updated: 23 May '18, 01:40