| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 906 人关注过本帖
标题:[求助]大家常用的一个语句,但我有点不懂?
只看楼主 加入收藏
yangzhifu
Rank: 1
等 级:新手上路
威 望: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
夜火
Rank: 1
等 级:新手上路
帖 子:149
专家分:0
注 册:2007-5-30
收藏
得分:0 
这就是一个递归  程序的调用  自己想明白就可以了   没什么

2007-06-05 08:17
yangzhifu
Rank: 1
等 级:新手上路
威 望:2
帖 子:433
专家分:0
注 册:2007-4-11
收藏
得分:0 
以下是引用夜火在2007-6-5 8:17:06的发言:
这就是一个递归 程序的调用 自己想明白就可以了 没什么


方寸之内,剖天下; 方坛之内,析自我;
2007-06-05 17:34
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
随便举个例子,123456,这是一个数,执行上面的程序,if语句会执行第一次i是12345,由于n/10不是0所以保留现场继续做convert(n),直到i是1为止,然后在回头解决前面没有执行完的程序。

学习需要安静。。海盗要重新来过。。
2007-06-05 18:04
yangzhifu
Rank: 1
等 级:新手上路
威 望:2
帖 子:433
专家分:0
注 册:2007-4-11
收藏
得分:0 
以下是引用yangzhifu在2007-6-5 17:34:10的发言:

说说putchar的用法


方寸之内,剖天下; 方坛之内,析自我;
2007-06-05 23:09
yangzhifu
Rank: 1
等 级:新手上路
威 望:2
帖 子:433
专家分:0
注 册:2007-4-11
收藏
得分:0 
说说上面putchar是怎么变化的

方寸之内,剖天下; 方坛之内,析自我;
2007-06-05 23:10
hxksr916
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-6-6
收藏
得分: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
Rank: 1
等 级:新手上路
威 望:2
帖 子:433
专家分:0
注 册:2007-4-11
收藏
得分:0 
谢谢哦

方寸之内,剖天下; 方坛之内,析自我;
2007-06-07 12:52
ffppgg
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-3-18
收藏
得分:0 

这个递归程序的执行了所以符合条件的if语句后,在倒着输出数(执行putchar()).
关于的递归语句的介绍查查书就知道了


2007-06-07 23:18
快速回复:[求助]大家常用的一个语句,但我有点不懂?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034519 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved