关闭

数组数据循环移动

670人阅读 评论(0) 收藏 举报
分类:
 
/*有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验证
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:43763次
    • 积分:647
    • 等级:
    • 排名:千里之外
    • 原创:20篇
    • 转载:14篇
    • 译文:0篇
    • 评论:6条
    最新评论
    程序员的调试能力和相关书籍