将数组中的元素右移p个单位
#include <stdio.h> #include <string.h> #define MAXSIZE 1000 void Reserve(int a[], int front, int rear); void LeftMoved(int a[], int p, int n); int main() { int seq[MAXSIZE]; memset(seq, 0, sizeof(seq)); int n; scanf("%d", &n); int p; scanf("%d", &p); int i; for(i=0; i<n;++i) { scanf("%d", &seq[i]); } LeftMoved(seq, p, n); for(i=0; i<n; ++i) { if(i!=0) printf(" "); printf("%d", seq[i]); } printf("\n"); return 0; } void Reserve(int a[], int front, int rear) { int i=front; int j=rear; int temp; while(i<j) { temp=a[i]; a[i]=a[j]; a[j]=temp; ++i; --j; } } void LeftMoved(int a[], int p, int n) { Reserve(a, n-p, n-1); Reserve(a, 0, n-p-1); Reserve(a, 0, n-1); }