一道简单的c题目

来源:百度知道 编辑:UC知道 时间:2024/05/10 05:27:16
有一道题要求用字符串形式输出整数n的题目,原答案如下:
#include<stdio.h>
void convert(int n){
int i;
if((i=n/10)!=0)
convert(i);
putchar(n%10+'0');
}

int main(){
int n;
printf("\nInput an integer: ");
scanf("%d",&n);
printf("Output:");
convert(n);
system("PAUSE");
return 0;
}

在函数convert中我有两个地方不明白:
1. 为什么putchar括号中后面要加一个+'0',不加会输出ascII中的符号,有什么说法吗?
2. 按照我对算法的理解,如果没有if语句,convert函数的功能是输出最低位,如8139的9,那么输出的结果应该是逆序,为什么结果是正序?
内嵌套到底是什么?我真得不懂。我用的是谭浩强的c书,里面只讲了一个函数的递归调用,我们的老师只讲了一个求n!的例子,其他的没太多介绍,多讲些行吗?
多谢!

第一个问题:+'0'相当于是加上了0的ASCII码,这样括号中的值就是该数字对应的ASCII码,才能用putchar在屏幕上打印出该数字。
第二个问题:请仔细理解一下程序的内嵌套!

1,其实都一样的,都行;
2,忘了convert怎么回事了,不好意思。