新人报到!各位大侠帮忙看看错哪了?
有n个整数,将前面各数顺序向后移动m个位置,最后m个数变成最前面m个数。写一函数实现以上功能,在主函数中输入n各数和输出调整后的n个数。#include"stdio.h"
void main()
{
int *move_m(int *p,int m,int n);
int i,m,n;
int a[10],b[10];
int *p,*p2;
p=a;
p2=b;
printf("输入要要移动的位数和整数的个数:");
scanf("%d %d",&m,&n);
for(i=0;i<n;i++)
scanf("%d",p+i);
p2=move_m(p,m,n);
for(i=0;i<n;i++)
printf("%d ",*(p2+i));
printf("\n");
}
int *move_m(int *p,int m,int n)
{
int i,t;
int b[10];
int *p1;
p1=b;
for(i=0;i<m;i++)
*(p1+i)=*(p+(n-m+i));
for(i=m;i<n;i++)
*(p1+i)=*(p+(i-m));
return p1;
}
改程序编译通过了,但就是运行不出来正确的结果。很是郁闷啊!