|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 问个小问题。。
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
596
人关注过本帖
标题:
问个小问题。。
只看楼主
加入收藏
when159357
等 级:
论坛游民
帖 子:50
专家分:71
注 册:2009-11-11
结帖率:
90%
楼主
收藏
已结贴
√
问题点数:20 回复次数:7
问个小问题。。
#include<stdio.h>
void f(int n)
{
if(n<0){
putchar('-');
n=-n;
}
if(n/10) f(n/10);
putchar(n%10+'0');
}
main()
{
f(-610);
}
这个程序
输入结果是-610
小弟不太懂为什么
请大虾解惑
2010-01-13 16:08
举报帖子
使用道具
赠送鲜花
小J
等 级:
等待验证会员
威 望:
1
帖 子:282
专家分:704
注 册:2009-6-18
第
2
楼
收藏
得分:0
以下是引用
when159357
在2010-1-13 16:08:17的发言:
#include<stdio.h>
void f(int n)
{
if(n<0){
putchar('-');
n=-n;
}
if(n/10) f(n/10);
putchar(n%10+'0');
}
main()
{
f(-610);
}
这个程序
输入结果是-610
小弟不太懂为什么 ...
因为你输入的值小于0所以只执行第一个if语句.
2010-01-13 18:35
举报帖子
使用道具
赠送鲜花
when159357
等 级:
论坛游民
帖 子:50
专家分:71
注 册:2009-11-11
第
3
楼
收藏
得分:0
回复 2楼 小J
那为什么改下putchar()里面的输出的内容
就能得到不同的输出结果
如果是只执行上面的语句
那n=-n的时候-610已经成了610了 后面那个if
n/10条件已经成立了呀
2010-01-13 21:39
举报帖子
使用道具
赠送鲜花
ZTCK
来 自:信宜
等 级:
论坛游民
帖 子:20
专家分:39
注 册:2010-1-14
第
4
楼
收藏
得分:0
新手路过
2010-01-14 18:05
举报帖子
使用道具
赠送鲜花
star_blue
等 级:
论坛游民
帖 子:1
专家分:20
注 册:2010-1-14
第
5
楼
收藏
得分:20
最重要的是知道程序执行的过程。
输入-610, -610<0, 输出'-', n = 610;
610/10 = 61, n = 61, 进入f(61);
61/10 = 6.1, n = 6, 进入f(6);
6/10 = 0.6, 条件不成立, 输出6%10+'0', 就是6;
f(61)输出61%10+'0', 就是1;
f(-610)输出610%10+'0', 就是0;
最后结果就是-610。
2010-01-14 22:51
举报帖子
使用道具
赠送鲜花
dancing1wolv
来 自:中国
等 级:
论坛游民
帖 子:36
专家分:78
注 册:2009-12-25
第
6
楼
收藏
得分:0
嗯,递归调用,五楼说的很好。可以设置断点,追踪调试,能看到每次执行时n的值(本人也是刚学的,感觉挺好的)
相信自己,每天进步一点点,C语言,you can do it 。
2010-01-15 00:07
举报帖子
使用道具
赠送鲜花
when159357
等 级:
论坛游民
帖 子:50
专家分:71
注 册:2009-11-11
第
7
楼
收藏
得分:0
回复 5楼 star_blue
多谢多谢
我明白了~~~
2010-01-15 22:58
举报帖子
使用道具
赠送鲜花
woshishanjim
等 级:
新手上路
帖 子:8
专家分:1
注 册:2009-11-16
第
8
楼
收藏
得分:0
额
5楼的解释前面看懂点
后面没懂
慢慢学吧
2010-01-17 17:16
举报帖子
使用道具
赠送鲜花
8
1/1页
1
快速回复:
问个小问题。。
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.043228 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved