数组数据循环移动

 
/**//*有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验证
阅读更多
个人分类: C与C++ 初级经验
想对作者说点什么? 我来说一句

数组循环移动

2013年11月26日 340B 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭