编程练习6

循环数组

 1 //数组中的数按步长向右移动,补充到数组头部,简称循环数组
 2 #include <iostream>
 3 using namespace std;
 4 
 5 void print(int* dig,int n)
 6 {
 7     for(int i=0;i<n;++i)
 8         cout<<dig[i]<<" ";
 9     cout<<endl;
10 }
11 void move(int* dig,int n,int step)
12 {
13     if (step>=n) return;
14     int* tmp=(int*)malloc(step*sizeof(int));
15     int i;
16 
17     for(i=0;i<step;++i)
18         tmp[i]=dig[n-step+i];
19     for(i=n-1;i>=step;--i)
20         dig[i]=dig[i-step];
21     for(i=0;i<step;++i)
22         dig[i]=tmp[i];
23 
24 }
25 int main()
26 {
27     int dig[]={2,3,6,9,1,43,32,34};
28     int n=sizeof(dig)/sizeof(int);
29     int step=2;
30     print(dig,n);
31     for(int i=0;i<10;++i)
32     {
33         move(dig,n,step);
34         print(dig,n);
35     }
36 
37     return 0;
38 }

 

posted on 2012-09-12 10:06  lyncre  阅读(121)  评论(0)    收藏  举报

导航