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
參考代碼
- #include <iostream>
- using namespace std;
- int main(){
- int n,l,i,an[1000];
- int *p;
- std::cin>>n>>l;
- for(i = 0;i < n;i ++){
- std::cin>>an[i];
- }
- p = an + n - l;
- do{
- std::cout<<*p<<" ";
- p ++;
- if(p > an + n - 1){
- p = an;
- }
- if(p == an + n - l){
- break;
- }
- }while(p <= an + n -1);
- std::cout<<std::endl;
- return 0;
- }