| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 996 人关注过本帖
标题:奥赛的一道题,,各位看看怎么做
取消只看楼主 加入收藏
密码code
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-8-12
收藏
 问题点数:0 回复次数:2 
奥赛的一道题,,各位看看怎么做
4.#include <stdio.h>
void digit(long n,long m)
{if(m>0)
printf("%2ld",n%10);
if(m>1)
digit(n/10,m/10);
printf("%2ld",n%10);
}
main()
{long x,x2;
printf("Input a number:\n"); scanf("%ld",&x);
x2=1;
while(x2<x) x2*=10;
x2/=10;
digit(x,x2);
printf("\n");
}
输入:9734526
输出:______________________________



答案是 6 2 5 4 3 7 9 9 7 3 4 5 2 6(数字之间无空格扣2分)

但我觉得输出应该是6,m>1明明不成立,怎么出来的这么一串数。谁能帮忙解释一下?
搜索更多相关主题的帖子: 奥赛 
2008-08-13 17:35
密码code
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-8-12
收藏
得分:0 
哦,是不是这段while(x2<x) x2*=10;x2/=10; 是先把x2算到10000000再除10呀

我以开始以为这段是这样理解那(
while(x2<x)
{x2*=10;
x2/=10; }
2008-08-14 12:40
密码code
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-8-12
收藏
得分:0 
对了,多谢各位!!
2008-08-14 12:42
快速回复:奥赛的一道题,,各位看看怎么做
数据加载中...
 
   



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

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