搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ [求助]大家常用的一个语句,但我有点不懂?
标题:
[求助]大家常用的一个语句,但我有点不懂?
只看楼主
yangzhifu
等 级:
新手上路
威 望:
2
帖 子:433
专家分:0
注 册:2007-4-11
楼主
问题点数:0 回复次数:8
[求助]大家常用的一个语句,但我有点不懂?
具体是 :
void convert(int n)
{int i;
if((i=n/10)!=0)
convert(i);
putchar(n%10+'0');
}
该程序的作用是将一个整数输入,再以字符输出各个位数
我想知道是不是先执行完if语句,再执行putchar语句 ,n的值是如何变化的?
搜索更多相关主题的帖子:
语句
convert
int
putchar
2007-06-04 23:54
夜火
等 级:
新手上路
帖 子:149
专家分:0
注 册:2007-5-30
第
2
楼
得分:0
这就是一个递归 程序的调用 自己想明白就可以了 没什么
2007-06-05 08:17
yangzhifu
等 级:
新手上路
威 望:
2
帖 子:433
专家分:0
注 册:2007-4-11
第
3
楼
得分:0
以下是引用
夜火
在2007-6-5 8:17:06的发言:
这就是一个递归 程序的调用 自己想明白就可以了 没什么
方寸之内,剖天下; 方坛之内,析自我;
2007-06-05 17:34
sunkaidong
来 自:南京师范大学
等 级:
贵宾
威 望:
12
帖 子:4496
专家分:141
注 册:2006-12-28
第
4
楼
得分:0
随便举个例子,123456,这是一个数,执行上面的程序,if语句会执行第一次i是12345,由于n/10不是0所以保留现场继续做convert(n),直到i是1为止,然后在回头解决前面没有执行完的程序。
学习需要安静。。海盗要重新来过。。
2007-06-05 18:04
yangzhifu
等 级:
新手上路
威 望:
2
帖 子:433
专家分:0
注 册:2007-4-11
第
5
楼
得分:0
以下是引用
yangzhifu
在2007-6-5 17:34:10的发言:
说说putchar的用法
方寸之内,剖天下; 方坛之内,析自我;
2007-06-05 23:09
yangzhifu
等 级:
新手上路
威 望:
2
帖 子:433
专家分:0
注 册:2007-4-11
第
6
楼
得分:0
说说上面putchar是怎么变化的
方寸之内,剖天下; 方坛之内,析自我;
2007-06-05 23:10
hxksr916
等 级:
新手上路
帖 子:6
专家分:0
注 册:2007-6-6
第
7
楼
得分:0
程序运行到i==0即n%10为最高位时,第一次执行 putchar(n%10+'0');输出最高位,然后依次回溯到上一层,执行之前未执行的putchar语句,输出之后各位数。
如:main()函数调用convert(123);执行过程如下:
convert(123);
n=123;i=12;
convert(12);
n=12;i=1;
convert(1);
n=1;i=0;putchar(1%10+'0');/输出 ’1‘
putchar(12%10+'0');输出 ’2‘
putchar(123%10+'0');输出’3‘
2007-06-06 13:47
yangzhifu
等 级:
新手上路
威 望:
2
帖 子:433
专家分:0
注 册:2007-4-11
第
8
楼
得分:0
谢谢哦
方寸之内,剖天下; 方坛之内,析自我;
2007-06-07 12:52
ffppgg
等 级:
新手上路
帖 子:41
专家分:0
注 册:2007-3-18
第
9
楼
得分:0
这个递归程序的执行了所以符合条件的if语句后,在倒着输出数(执行putchar()).
关于的递归语句的介绍查查书就知道了
2007-06-07 23:18
9
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-144954-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.460082 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved