将一个数字作为字符串打印的情况,数字是反序生成的:低位数字先于高位数字生成,但他们必须以与此相反的次序打印。
解决该问题有两种方法,一种是将生成的各个数字依次存储在字符数组中,然后再以相反的次序打印,这种方式与3.6中的itoa函数的处理方式相似。
另一种方法则是使用递归:
#include<stdio.h> void printd(int n) { if(n<0){ putchar('-'); n=-n; } if(n/10) printd(n/10); putchar(n%10+'0'); }