| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 640 人关注过本帖
标题:移动数用递归
只看楼主 加入收藏
abcc
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-1-22
收藏
 问题点数:0 回复次数:2 
移动数用递归
有N个整数,使其前面各数顺序向后移M个位置,最后M个数变成最前面M个数,在主函数中输入N个整数,并输出调整后的N个数.
move(int array[20],int n,int m)
{ int *p,array_end;
 array_end=*(array+n-1);
for(p=array+n-1;p>array;p--);
*p=*(p-1);/*从这个地方后面的就看不懂了,只知道用了递归*/
*array=array_end;
m--;
if(m>0) move(array,n,m);
}
搜索更多相关主题的帖子: 递归 
2005-04-13 17:33
poppylx
Rank: 1
等 级:新手上路
帖 子:367
专家分:0
注 册:2004-9-27
收藏
得分:0 
一个递归    这个还算简单
这个函数除去最后一行   其作用是将n个数向后移动一位

array_end=*(array+n-1);                                先将最后一个数保存下来
for(p=array+n-1;p>array;p--);                        循环  使其他的n个数逐个向后移动一位
*p=*(p-1);
*array=array_end;                                         将被保存下来的最后一个数赋值给第一个数
                                                     实现将n个数向后移动一位

m--;                                               因为是要移动m个数   所以定义m来记数    每移动一位 m减一
if(m>0) move(array,n,m);              在m大于0的情况下    将刚刚已经移动过的新数组传给下一个函数    继续移动


呼~~~~~   应该没有错吧

动于心而静如水
2005-04-13 18:53
kaifeng05
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2005-5-11
收藏
得分:0 
才学还是不明白是什么意思?可以的话可以说说怎么回事吗?

学.....佛......有恒
2005-05-17 00:20
快速回复:移动数用递归
数据加载中...
 
   



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

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