C++求助,小白是真的不会[face]emoji:010.png[/face]
1条回答 默认 最新
- obitosbb 2021-04-23 14:37关注
#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"); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用