数组数据循环移动

 
/*有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验证
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值