是小狐狸啊
2016-05-06 14:46
采纳率: 63.6%
浏览 4.3k
已采纳

C++ 数组内元素互换的简单问题

//输入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具体是怎样执行的?大神们可以详细解释一下这段程序吗?又或是,这段程序本身并不好读,那可以修改一下或提供一个更易执行的解决问题的思路吗?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

相关推荐 更多相似问题