输入10个整数,把其中最小的数与第一个数交换,最大的数与最后一个数交换。请帮忙看看我这用指针来交换错哪里,为何会有如下图的结果
#include <stdio.h>void input(int a[])
{
int i;
for(i=0;i<10;i++) scanf("%d",&a[i]);
}
void swap(int a[])
{
int *p,*q,i,temp1,temp2;
p=a;q=a;
for(i=0;i<10;i++)
{
if(*p<a[i]) p=a+i;
if(*q>a[i]) q=a+i;
}
temp1=a[9];
a[9]=*p;
*p=temp1;
temp2=a[0];
a[0]=*q;
*q=temp2;
}
void display(int a[])
{
int i;
for(i=0; i<10; i++)
printf("%d\n", a[i]);
}
int main()
{
int a[10];
input(a);
printf("input done\n");
swap(a);
printf("swap done\n");
display(a);
printf("display done\n");
return 0;
}