By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
445,929 Members | 1,628 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 445,929 IT Pros & Developers. It's quick & easy.

Why am I getting floating point exception?

P: n/a
Im just learning C an do not understand why the following code fails.
The while loop apperas to work fine until it bombs out with a
floating point exception. Whats going on?

Thanks
/*
* chapter 5, program 7
* Calculate GCD of two numbers.
*/

#include <stdio.h>

main ()
{
int u,v, temp;

temp = -1; // *** DEBUG
printf("Please type two non-negative integers.\n");

scanf("%d%d", &u,&v);

printf("\n\nThe GCD of %d and %d is ", u,v);

while ( u != 0)
{
printf ("\nu v temp ---> %d\t%d\t%d",u, v, temp); // *** DEBUG
temp = u % v;
u = v;
v = temp;
}

// printf("%d\n", u);

}
**** OUTPUT:

[sj@KUTI pic]$ a.out
Please type two non-negative integers.
150 35
The GCD of 150 and 35 is
u v temp ---> 150 35 -1
u v temp ---> 35 10 10
u v temp ---> 10 5 5
Floating point exception


Nov 15 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
Steven Jones wrote:
while ( u != 0)
while (v != 0)
{
printf ("\nu v temp ---> %d\t%d\t%d",u, v, temp); // *** DEBUG
temp = u % v;
u = v;
v = temp;
}


--
pete
Nov 15 '05 #2

P: n/a
On 2005-10-30, Steven Jones <ca**@swbell.net> wrote:
Im just learning C an do not understand why the following code fails.
The while loop apperas to work fine until it bombs out with a
floating point exception. Whats going on?
Probable reasons for a floating point exception involving integers include:
Trap representations of signed types [unlikely on modern systems]
Overflow on signed types
Division by zero.
while ( u != 0)
{
printf ("\nu v temp ---> %d\t%d\t%d",u, v, temp); // *** DEBUG
temp = u % v; If 'v' reaches zero, you will have a division by zero here. u = v;
v = temp;
}

Nov 15 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.