PAT:1008. 数组元素循环右移问题 (20) AC
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n,move,cnt=0;
scanf("%d%d",&n,&move);
int* arr;
arr=(int*)calloc(n,sizeof(int));
for(int i=0 ; i<n ; ++i)
scanf("%d",&arr[i]);
move%=n; //取余可以保证最多移动一轮
for(int i=n-move ; i<n ; ++i)
{
printf("%d",arr[i]);
printf(" ");
++cnt;
}
for(int i=0 ; cnt<n ; ++i) //从头输出的时候可以用总量作为条件判断
{
printf("%d",arr[i]);
if(cnt<n-1) //【skill】对空格不好把握的时候就用总输出量判断是否要加
printf(" ");
++cnt;
}
printf("\n");
system("pause");
return 0;
}