| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 657 人关注过本帖
标题:[提问]关于过程体执行的一个问题,谢谢![已解决]
只看楼主 加入收藏
子洋虾米
Rank: 1
来 自:哈尔滨市第九中学
等 级:新手上路
帖 子:79
专家分:0
注 册:2008-9-15
收藏
 问题点数:0 回复次数:3 
[提问]关于过程体执行的一个问题,谢谢![已解决]
有以下程序
程序代码:
#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
但我只看出了6 2 5 4 3 7 9
请高手指点!谢谢

[[it] 本帖最后由 子洋虾米 于 2008-10-12 13:41 编辑 [/it]]
搜索更多相关主题的帖子: noip 
2008-10-08 22:09
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
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);
}

注意这个函数,在递归的前后,分别有一个相同的输出语句,所以应该是对称输出的。
收到的鲜花
  • 子洋虾米2008-10-12 13:41 送鲜花  5朵   附言:我很赞同

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-10-08 22:14
ytb745892798
Rank: 1
来 自:漳平。永福
等 级:新手上路
帖 子:63
专家分:0
注 册:2008-9-29
收藏
得分:0 
x2=1;
                         while(x2<x)  x2*=10;
                           x2/=10;
运行后,x2=1,x2是传给m的,即m=1.所以只有执行
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);
我想应该是这样
收到的鲜花
  • 子洋虾米2008-10-12 13:41 送鲜花  5朵   附言:我很赞同

我的梦想是成为一名出色的程序员!
2008-10-08 22:20
子洋虾米
Rank: 1
来 自:哈尔滨市第九中学
等 级:新手上路
帖 子:79
专家分:0
注 册:2008-9-15
收藏
得分:0 
感谢以上二位
我想明白了
谢谢~~

好花来年开,好景依旧在;趁你还年轻,抓紧搞竞赛。
2008-10-12 07:57
快速回复:[提问]关于过程体执行的一个问题,谢谢![已解决]
数据加载中...
 
   



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

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