题目:有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面的m个数,写出一函数实现以上功能,在主函数中输入n个整数和输出调整后的n个数。(如:输入1 2 3 4 5 ,n=5,m=2,输出4 5 1 2 3)
#include
int main()
{void move(int ,int,int);
int n,m,number[20],i;
printf("how many number?");
scanf("%d",&n);
printf("enter %d number:",n);
for(i=0;i<=n-1;i++)
scanf("%d",&number[i]);
printf("how many number u wanto move? ");
scanf("%d",&m);
move(number,n,m);
for(i=0;i<=n-1;i++)
printf("%d\t",number[i]);
return 0;
}
void move(int *p,int n,int m)
{int a[20],i,t;
for(i=0;i<=m-1;i++)
a[i]=(p+n-m+i);
for(t=1;t<=m;t++)
{for(i=n-m-1;i>=0;i--)
(p+i+1)=(p+i);}
for(i=0;i<=m-1;i++)
*(p+i)=a[i];
}
(可以运行,如果输入1 2 3 4 5,m=2,输出的是 4 5 1 2 5)帮忙看一下哪里有问题。。谢谢!!