This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

can not perform recursion function correctly

hi: I want to use recursion function to transform a integer from binary form to ascii form. But the result is wrong.I don't why ,please help to analyse.

soure code:

void
binary_to_ascii(unsigned int value)
{

   unsigned int quotient;
   quotient = value/10;
   if(quotient !=0 )
       binary_to_ascii(quotient);
   putchar(value%10+'0');

}


int
main()
{
 while(1){
    binary_to_ascii(4267);
  }
}


I want to produce characters '4','2','6','7' in sequence. but the result is '4','4','4'. I don't know what is wrong with my code.

Parents
  • I have used reentrant ,but the result always lack one charater. I want the result is '4','2','6','7', but the actual outcome is '4','2','6'.
    the '7' disappears. why?

    void
    binary_to_ascii(unsigned int value reentrant

    {

    unsigned int quotient; quotient = value/10; if(quotient !=0 ) binary_to_ascii(quotient); putchar(value%10+'0');

    }

    int
    main()
    { while(1){ binary_to_ascii(4267); }
    }

Reply
  • I have used reentrant ,but the result always lack one charater. I want the result is '4','2','6','7', but the actual outcome is '4','2','6'.
    the '7' disappears. why?

    void
    binary_to_ascii(unsigned int value reentrant

    {

    unsigned int quotient; quotient = value/10; if(quotient !=0 ) binary_to_ascii(quotient); putchar(value%10+'0');

    }

    int
    main()
    { while(1){ binary_to_ascii(4267); }
    }

Children
No data