将n个数按输入时顺序的逆序排列!函数实现;
#include<stdio.h>
int main()
{
void sort(int *,int );
int n,i,*p,num[20];
printf("please input n:/n");
scanf("%d",&n);
printf("please input these number:/n");
for(i=0;i<n;i++)
scanf("%d",&num[i]);
p=&num[0];//因为p指向数组首地址;
sort(p,n);
printf("the output sequence:");
for(i=0;i<n;i++)
printf("%4d",num[i]);//因为*p1=*p2交换了,而且p指向数组的第一个地址;所以可以用num[i]输出;
return 0;
}
void sort(int *p,int m)
{
int temp,i;
int *p1,*p2;
for(i=0;i<m/2;i++)
{
p1=p+i;//p1指针从前往后移动
p2=p+(m-1-i);//p+(m-1+i)错误;p2指针从最后一个向中间移动
temp=*p1;
*p1=*p2;
*p2=temp;
}
}