[求助]简单的指针数组,交换的时候出现错误
下面是输入10个整数,把最小的与第一个换,最大的与最后一个换;要求是无论实参还是形参,都用指针实现,不用数组
大家最好 是能帮我找下我下面写的这个的错误,因为找不到这个错误让我心里很不舒服,就算是看到其它写的对的程序,可是这个错误找不出来,以后还会犯同样的错误的
我在这里谢谢了啊
#include"stdio.h"
void swap(int *p1,int *p2)
{
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
void sort(int *q,int n)
{
int *max,*min;
*min=*max=*q;
for(q=q+1;q<q+n;q++)
{
if(*q>*max)
max=q;
else min=q;
}
swap(q,max);//此时的q指向的是数组的最后一位数
if(min==q)
swap(q-n+1,max);
else swap(q-n+1,min);
}
main()
{
int a[10],i=0;
printf("Input 10 numbers:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
p=a;
sort(p,10);
for(i=0;i<10;i++)
printf("\n%3d",a[i]);
return 0;
}