有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面m个数,必须用指针
# include <stdio.h>
# define N 50
int main ()
{
void remove(int*p,int m,int n);
int *p,a[N],i,q,h;
printf("请输入一行整数及后移量q和输入整数个数h:");
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
scanf("%d,%d",&q,&h);
p=a;
remove(p,q,h);
printf("经重新排序后的顺序为:%s",*p);
return 0;
}
void remove (int*p,int m,int n)
{
int j;
for(j=0;j<n-m;j++)
{
int temp=0;
*(p+j)=temp;
*(p+j)=*(p+n);
*(p+n)=temp;
}
}
这是我写的程序,哪里错了,为什么出不来结果啊?
printf("经重新排序后的顺序为:%s",*p);
这里语法有问题,p是int型,不能用%s打印吧
感觉你的思路是吧p数组前面的几个挪到后面山搏羡去,吧p指针逗拍后移一下,重新构银悄造p数组
那么你需要返回p的指针才可以吧