将数组中的元素左移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, 0, p-1);
	Reserve(a, p, n-1);
	Reserve(a, 0, n-1);
}

  

posted @ 2019-05-23 15:06  ozxics  阅读(253)  评论(0编辑  收藏  举报