用指针写 最值交换问题 c语言
#include<stdio.h>int main()
{
void inv(int *p,int n);
int i,a[10];
printf("请输入十个数\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
inv(a,10);
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
void inv(int *p,int n)
{
int *q=p,*l=p,*s=p;
int t1,t2;
for(;q<p+n;q++)
{
if(*l>*q)
l=q;
}
t1=*l;
*l=*p;
*p=t1;//最小的数跟第一个交换;
for(;q<p+n;q++)
{
if(*s<*q)
s=q;
}
t2=*s;
*s=*(p+n);
*(p+n)=t2;//最大的数跟最后一个交换;
}
最大的数跟最后一个交换的程序写错了 帮我改改吧、、、