问题:
输入一个数组,然后给数组左平移
思路:
- 左平移,用翻转法,从k开始,转0到k-1,再转k到n-1,最后整体转0到n-1。
- 另一个方法,在定义一个数组,用来存放右平移的数,从k后开始到n,肯定会存进b中的0到k-1,随后再定义一个循环,存放k之前的数,a数组从0到k,b数组从n-k到n
代码如下:
左平移翻转法:
#include <stdio.h>
#include <malloc.h>
void exchange(int *a,int left,int right)
{
while(left<right)
{
int temp=a[left];
a[left]=a[right];
a[right]=temp;
left++;
right--;
}
}
int main()
{
int n;
printf("输入几个数\n");
scanf("%d",&n);
int *a,*b;
a=(int*)malloc(sizeof(int)*n);
b=(int*)malloc(sizeof(int)*n);
int i=0;
printf("输入数字\n");
fo