这个题 让把整数转化为字符串 且用递归的方法 首先肯定要打印出这个整数的最高位的 但是如果要直接打印出最高位 是需要求位数 然后除以10的某次幂 然后用整数除这个数
但是这里是递归的方法
int main()
{
void convert(int n);
int n = 0;
cin >> n;
convert(n);
return 0;
}
// 递归的形式 想要先输出最高位是个问题 可以先判断是不是个位数 若不是 就递归它/10 然后输出它%10的结果
void convert(int n)
{
if (n / 10 != 0) //如果他不是个位数 把他的个位数去掉 然后递归前面的 最终结果为它的最高位以字符的形式输出出去
convert(n / 10);
putchar(n % 10 + '0');
}
首先这个函数如果接收了 489 那么 if判断不是个位数然后就递归489/10也就是48 就是直到递归函数接收的是个位数为止 那么就if不成立 就putchar这个个位数 然后上一个二位数也会走到下一步 %10之后以字符形式输出 依次类推
这里以字符的形式打印 用的是putchar函数 且用cout是不行的 putchar和cout对于整数加字符的输出有明显的区别 里面的细节我也不知道 如果用cout 它是把n%10当作一个整数 然后加上这个'0'的ASCII码值 最后以数字的形式输出 而putchar put char嘛 可能本身就是以char类型输出
其实 如果不用递归的办法也可以我认为 就是打印出每一位 好吧 我刚才看了一下 这篇的前x篇就是这个问题 只是不是以字符形式输出