指针法逆序输出,运行出错,求指教。
//将n个数按输入时的顺序逆序排列,用函数实现。<指针法处理>#include"stdio.h"
#define N 10
void main()
{
void sort(int *p,int n);
int arr[N],i;
printf("Please input %d integers:",N);
for(i=1;i<N;i++)
scanf("%d",&arr[i]);
sort(arr,N);
printf("Now ,the sorted numbers are:");
for(i=0;i<N;i++)
printf("%3d",arr[i]);
printf("\n");
}
void sort(int *p,int n)
{
int *p_mid,*p_end,temp;
p_mid=p+n/2;
p_end=p+n-1;
for(;p<p_mid;p++,p_end--)
{
temp=*p;
*p=*p_end;
*p_end=temp;
}
}
运行时结果出错,最后一个数为一串数字,恳请大家帮我分析下错误原因。