您的位置:首页 > 其它

指针练习

2017-03-14 09:44 162 查看
有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图。写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数。

Input

输入数据的个数n n个整数 移动的位置m

Output

移动后的n个数

Sample Input

10

1 2 3 4 5 6 7 8 9 10

2

Sample Output

9 10 1 2 3 4 5 6 7 8

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void move(int *p,int n,int m);
int  main()
{
int a[30];
int *p=a;
int m,n;
printf("input the n:\n");
scanf("%d",&n);
printf("input %d numbers:\n",n);
for(p=a; p<a+n;)
scanf("%d",p++);
printf("input the m:\n");
scanf("%d",&m);
p=a;
move(p,n,m);
for(p=a;p<a+n;)
printf("%d ",*p++);
printf("\n");
return 0;
}

void move(int *p,int n,int m)
{
int i;
for(i=n-1; i>=0; i--)
{
*(p+i+m)=*(p+i);
}
for(i=n; i<n+m; i++)
{
*p++=*(p+n);
}
return;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  指针