C++求助,小白是真的不会[face]emoji:010.png[/face]![](https://userblink.csdnimg.cn/20210423/m0_56312452/pic/c9ce4cfda0d8a95667733fa55bceb407-0.png)
![](https://userblink.csdnimg.cn/20210423/m0_56312452/pic/c9ce4cfda0d8a95667733fa55bceb407-0.png)
#include <stdio.h>
#include <stdlib.h>
main()
{
int len;
int *start;
int *end;
int current,t,i,k,m;
printf("请输入数组个数:");
scanf("%d",&len);
start = (int *)malloc(len*sizeof(int));
end = (int *)malloc(len*sizeof(int));
printf("请输入数组元素,以空格键隔开:\n");
for(m=0;m<len;m++)
scanf("%d",&start[m]);
//原数组输出显示:start
for(m=0;m<len;m++)
printf("%d ",start[m]);
printf("\n");
//current为左移指针,表示移多少次
for(current=0;current<len;current++)
{
//将原数组0~current-1 平移给end数组len-current+k~len 原数组左半部分赋值给输出数组后半部分,变化次数为current
for(k=0;k<current;k++)
end[len-current+k] = start[k];
//将原数组 current~len平移给end数组0~current 原数组后半部分赋值给输出数组左半部分,变化次数为len-current
for(t=current,i=0;t<len;t++)
end[i++]=start[t];
printf("循环左移%d位后的结果:", current);
// 左移后输出显示:end
for(m=0;m<len;m++)
printf("%d ",end[m]);
printf("\n");
}
system("pause");
}