Hi!
Please take a look at the code and tell me, why there is an infinite loop in recursive function?
Thanks.Code:# include <stdio.h> void pIt (float X1); void pRe (float X1, int I); int main () { float X1 = 100; int I = 100; printf ("Iterative function\n"); pIt (X1); printf ("\n\nRecursive function\n"); pRe (X1, I); getchar (); return 0; } void pIt (float X1) { int I = 100; while ( (I > 0) && (X1 > 1) ) { X1 = (float) (X1 * 0.5); I = I - 1; } printf ("X1 = %f", X1); } void pRe (float X1, int I) { while ( (I > 0) && (X1 > 1) ) { pRe ((float) (X1*0.5), I-1); printf ("\n1. X1 = %f", X1); // X1 here is not under 1 - WHY ?? printf ("\nI = %d", I); getchar (); } printf ("2. X1 = %f", X1); // X1 is here under 1 }



LinkBack URL
About LinkBacks


