1、问题
以字符形式按顺序打印数字的每位数字(递归和非递)
2、代码实现
#include <stdio.h>
#include <math.h>
//以字符形式按顺序打印数字的每位数字,比如4267,打印4267
//递归实现void printf_char(unsigned int value)
{unsigned int tmp;tmp = value / 10;if (tmp != 0)printf_char(tmp);putchar(value % 10 + '0');
}//非递归实现
void printf_char1(unsigned int value)
{int len = 0;int value1 = value;//计算长度while (value1 > 0){++len;value1 /= 10;}double a = pow(10, 2);printf("len is %d\n", len);//4267 4267 / 1000, 4267 / 100 % 10, 4367 / 10 % 10,for (int i = 1; i <= len; ++i){double dou = pow(10, len - i);i == 1 ? putchar(value / (int)dou + '0') : putchar(value / (int)dou % 10 + '0');}
}i