歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> C++編程練習-循環移動

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

日期:2017/3/1 11:16:43   编辑:Linux編程
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