题目是:有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数,写一个函数实现以上功能
#include
int input(int *p)
{
int i=0;
do
{
scanf("%d",p+i);
i++;
}
while(*(p+i-1)!=-1);
return i-1;
}
int* mv(int n,int m,int p)
{
int i,b[100],*c=NULL;
for(i=0;i<m;i++)
{
b[i]=(p+m-1);
}
for(i=0;i<n-m;i++)
{
b[m-1+i]=*(p+i);
}
c=b;
return c;
}
void output(int p,int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%d",(p+i));
}
}
int main()
{
int a[100],n,m,*o=NULL;
n=input(a);
printf("请输入m(把数据最后的m个数按顺序移动到最前):\n");
scanf("%d",m);
o=mv(n,m,a);
output(o,n);
return 0;
}