大家好.下面是个函数调用自身的程序,输出的结果为什么是VALUE值的每个位的数字,而不是输出VALUE的第一位数字?
请大家帮忙看看.谢谢.程序简单,没写注释.
#include<stdio.h>
void
a(unsigned int value)
{
unsigned int point;
point=value/10;
if(point!=0)
a(point);
putchar(value%10+'0');
printf("\n");
}
/*--------------------------------------*/
int
main(void)
{
int value=485939;
a(485939);
return 0;
}
----------------解决方案--------------------------------------------------------
怎么没人看也没人回答??
----------------解决方案--------------------------------------------------------
point=value/10;
----------------解决方案--------------------------------------------------------
#include<stdio.h>
void
a(unsigned int value)
{
unsigned int point;
point=value/10;
if(point!=0) a(point);
else
{
putchar(value%10+'0');/*每次该段程序都被执行依次*/
printf("\n");
}
}
/*--------------------------------------*/
int
main(void)
{
int value=485939;
a(485939);
return 0;
}
----------------解决方案--------------------------------------------------------
递归的问题 多看看递归的资料就可以了
我也是不懂才看的 现在明白了
----------------解决方案--------------------------------------------------------
a函数中执行到IF语句不是又调用了a函数吗?这样就又再次回到a函数,直到POINT==0为止.这样再执行PUTCHAR语句,不是输出了4吗?怎么输出了各个位数?
----------------解决方案--------------------------------------------------------