//输入10个整数,将其中最小的数与第一个数交换,把最大的数与最后一个数交换。用指针实现
int main()
{
int a[10];
int *max,*min,*p,temp;
cout<<"输入10个数";
for (int i=0;i<10;i++)
cin>>a[i];
max=min=a;
for(p=a+1;p<a+10;p++)
if(*p>*max) max=p;
else if(*p<*min) min=p;
temp=a[0];a[0]=*min;*min=temp;
if(*max!=a[0])
{
temp=a[9];a[9]=*max;*max=temp;
}
else
{
temp=a[9];a[9]=*min;*min=temp;
}
cout<<"交换后的数组:";
for(p=a;p<a+10;p++)
cout<<*p<<" ";
cout<<endl;
}
这是段可以运行的能得到预期结果的程序,可是程序实现的思路让我很困惑,这里面的for···if···else if···if···else具体是怎样执行的?大神们可以详细解释一下这段程序吗?又或是,这段程序本身并不好读,那可以修改一下或提供一个更易执行的解决问题的思路吗?