数组数据循环移动

原创 2007年09月26日 16:43:00
 
/*有n个整数,使其前面各数顺序向后移m个位置,最
后m个数变成最前面的m个数
*/

#include 
<stdio.h>
#define N 8
void move(int x[], int n, int m)  /*长度为n的数组,循环移动的变量为m*/
{
   
int i, *starta, *startb;
   
int b[N];                /*b数组作为临时数组储存*/
   starta 
= x;
   startb 
= b;
   
for(i = 0; i < n; i++)
   
{
      
*(startb +(m+i)%n) = *(starta + i);   /*循环移动*/
   }

   
for(i = 0; i < n; i++)
   
{
      x[i] 
= b[i];
   }

}


void main(void)
{
   
int a[N];
   
int i, n, m;
   printf(
"input the array;");
   
for(i = 0; i < N; i++)
   
{
      scanf(
"%d",&a[i]);
   }

   printf(
" input the move data;");
   scanf(
"%d",&m);
   move(a,N,m);
   printf(
"output the array:");
   
for(i = 0; i < N; i++)
   
{
      printf(
"%2d",a[i]);
   }

    getch();
}

不知道写些什么,经过WIN-TC验证

相关文章推荐

数组循环移动

  • 2013年11月26日 15:58
  • 340B
  • 下载

数组的循环移动.rar

  • 2009年06月19日 13:53
  • 854KB
  • 下载

数组的循环移动

数组的循环移动是考查的算法中比较常见的,有循环左移,循环右移之类的。当然,不会直接就考查移动的算法,还会有一定的时间复杂度,空间复杂度的要求之类的,这才是算法要求的,所以这两天刚好看到类似的题目,就记...

数据结构之数组循环右移

  • 2016年05月28日 10:30
  • 1KB
  • 下载

【算法思想】循环移动一个数组

问题:如何将一个数组循环左移或者右移k位?        在下面的解决方案中,我们以循环左移为例。 我们最容易想到的是,将前k个元素复制到一个临时的数组中,然后将剩下的n-k个元素向左移动k个位置,...

将数组中的数循环移动k位

CVTE 2016-03-05 在线笔试编程题 数组循环移动

完美洗牌:数论+分治+数组循环移动

参考 1.完美洗牌算法 2.第三十五章、完美洗牌算法 数论部分请看参考2. 问题长度为2n的数组{a1,a2,a3,a4,...,an,b1,b2,b3,b4,...,bna_1, ...

【有趣的面试算法题】 数组循环移动算法细究

设计一个算法,把一个含有N个元素的数组循环右移K位,要求:时间复杂度为O(N),且只允许使用两个附加变量。 最直接的想法是“一步到位”,每个数据只移动或者交换一次,几经摸索,终于找到了解法,效率堪称基...

完美算法 --将一个具有n个元素的数组向左循环移动i个位置

实验问题:   将一个具有n个元素的数组向左循环移动i个位置。  有许多应用程序会调用这个问题的算法,例如在文本编辑器中移动行的操作,磁盘整理时交换两个不同大小的相邻内存块等。所以,这个问题的算法要求...

貌似是腾讯的web前端开发的题目:要求实现表格数据点击后循环移动

第一次学写javascript,有不妥的地方还请同学们指正,没有学javascript前还觉得蛮难的,今天看了点,也不是太难 window.onload=function() { var n...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数组数据循环移动
举报原因:
原因补充:

(最多只允许输入30个字)