编程练习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 }
思想的高度决定事情的成败!
浙公网安备 33010602011771号