歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

C++編程練習-循環移動

Description
給定一組整數,要求利用數組把這組數保存起來,再利用指針實現對數組中的數循環移動。假定共有n個整數,則要使前面各數順序向後移m個位置,並使最後m各數變為最前面的m各數。

注意,不要用先輸出後m個數,再輸出前n-m個數的方法實現,也不要用兩個數組的方式實現。

要求只用一個數組的方式實現,一定要保證在輸出結果時,輸出的順序和數組中數的順序是一致的。
Input
輸入有兩行:第一行包含一個正整數n和一個正整數m,第二行包含n個正整數。每兩個正整數中間用一個空格分開。


Output
輸出有一行:經過循環移動後數組中整數的順序依次輸出,每兩個整數之間用空格分隔。
Sample Input
11 4
15 3 76 67 84 87 13 67 45 34 45
Sample Output
67 45 34 45 15 3 76 67 84 87 13

參考代碼

  1. #include <iostream>   
  2. using namespace std;  
  3. int main(){  
  4.     int n,l,i,an[1000];  
  5.     int *p;  
  6.     std::cin>>n>>l;  
  7.     for(i = 0;i < n;i ++){  
  8.         std::cin>>an[i];  
  9.     }  
  10.     p = an + n - l;  
  11.     do{  
  12.         std::cout<<*p<<" ";  
  13.         p ++;  
  14.         if(p > an + n - 1){  
  15.             p = an;  
  16.         }  
  17.         if(p == an + n - l){  
  18.             break;  
  19.         }  
  20.     }while(p <= an + n -1);  
  21.     std::cout<<std::endl;  
  22.     return 0;  
  23. }  
Copyright © Linux教程網 All Rights Reserved