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;
}
posted on 2015-02-14 18:27  Evence  阅读(134)  评论(0编辑  收藏  举报