有一道程序出错,谢谢帮忙看看
#include "stdio.h"#include "conio.h"
main()
{
int m,n,i,*p,*q;
printf("input n:");
scanf("%d",&n);
printf("input %d numbers:\n",n);
p=(int *)malloc(sizeof(int)*n);
for(i=0;i<n;i++)
scanf("%d",p++);
printf("input m:");
scanf("%d",&m);
q=(int *)malloc(sizeof(int)*m);
for(i=0;i<m;i++)
*(p+n-m+i)=*(q+i);
for(i=n-m;i>0;i--)
*(p+i+m)=*(p+i);
for(i=0;i<m;i++)
*(p+i)=*(q+i);
for(i=0;i<n;i++)
printf("%d",*p++);
free(p);
free(q);
getch();
}
要实现前n-m个元素依次向后移m位,最后m个元素放开头。
程序运行出错,请帮忙看看,谢谢。