游客 Signup | Login
中文 | En

3467 - 习题8-4 移动数据

输入n个整数(不超过10),使前面各数顺序后移m个位置,最后m个数变成最前面的m个数(m<n),写一个函数实现上述功能。

在main函数中调用该函数,最后分行输出移动后的n个数,每个数占一行。

输入输出都在main函数中进行。

n和m以及n个数都需要从键盘上进行输入。

Input

输入分三行

第一行输入一个数字(假设该数字以n表示,不超过10),表示要输入的数据个数

第二行输入以空格分隔的n个数

第三行输入后移的位置(假设该数字以m表示,m<n)

Output

分行输出移动后的数据,每个数字单独占一行。

Examples

Input

10
1 2 3 4 5 6 7 8 9 0
3

Output

8
9
0
1
2
3
4
5
6
7

Solution C

#include <stdio.h>
 void main()
 {
  void move(int a[10],int n,int m);
  int n,m;
  int i;
  int a[10];
  scanf("%d",&n);
  for(i=0;i<n;i++)
   scanf("%d",&a[i]);
  scanf("%d",&m);
   move(a,n, m);
  for(i=0;i<n;i++)
  {
   printf("%d\n",a[i]);
  }
  printf("\n");
 }
 void move(int a[10],int n,int m)
 {
  int *p,array_end;
   
   array_end=*(a+n-1);
   for(p=a+n-1;p>a;p--)
    *p=*(p-1);
   *a=array_end;
   m--;
   if(m>0)
       move(a,n,m);    
 
}
 
 


Time Limit 1 second
Memory Limit 12 MB
Discuss Stats
上一题 下一题