作业帮 > 综合 > 作业

如何解释下面这段C语言程序?特别是if((i=n/10)!=0) f(i)这段话?

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/06/28 12:09:30
如何解释下面这段C语言程序?特别是if((i=n/10)!=0) f(i)这段话?
#include
main()
{
void f(int n);
int m;
printf("Please enter a number:\n");
scanf("%d",&m);
f(m);
return 0;
}
void f(int n)
{
int i;
if((i=n/10)!=0)f(i);
putchar(n%10+'0');
}
如何解释下面这段C语言程序?特别是if((i=n/10)!=0) f(i)这段话?
这段程序作用是能将任意一个数的最高位以ASCII码字符的方式输出来. 比如你输入一个4321,它能输出4的ASCII码 '4'. if((i=n/10)!=0) f(i)这句话的意思就是先将n整除10后的值赋给i,再判断i与0的关系,如果为0,则不执行f(i),否则再次调用f(i),此时相当于递归调用.