排列2

#include <iostream>
#include <algorithm>
using namespace std;
//int t[4];
int main()
{
//    freopen("C://Users/destino74/Desktop/debug/test.txt","r",stdin);
//    freopen("C://Users/destino74/Desktop/debug/testout.txt","w",stdout);
    int a[5];bool f=0;
    while(cin>>a[0]>>a[1]>>a[2]>>a[3],a[0]||a[1]||a[2]||a[3])
    {
        if(f)    cout<<endl;
        f=1;
        sort(a,a+4);
        for(int i=1;i<4;i++)
        {
            if(a[0]==0)
            {
                a[0]=a[i];
                a[i]=0;
            }
        }
    //    if(a[0]==0){ return 0;}

int j=1;            
        do
        {
            cout<<a[0]<<a[1]<<a[2]<<a[3];
            if(a[2]!=a[3])
                cout<<" "<<a[0]<<a[1]<<a[3]<<a[2];

            if(a[1]!=a[2])
            {
                cout<<" "<<a[0]<<a[2]<<a[1]<<a[3];
                if(a[1]!=a[3])
                    cout<<" "<<a[0]<<a[2]<<a[3]<<a[1];
            }

            if(a[2]!=a[3])
            {
                cout<<" "<<a[0]<<a[3]<<a[1]<<a[2];
                if(a[2]!=a[1])
                    cout<<" "<<a[0]<<a[3]<<a[2]<<a[1];
            }
            cout<<endl;
            for(;j<4;j++)
                if(a[j]>a[0])
                {
    //            swap(a[j],a[0]);
                    a[4]=a[0];
                    a[0]=a[j];
                    a[j]=a[4];
                    break;
                }
        }while(j<4);
    }
return 0;

}
/*void swap(int &a,int &b)
{
    int temp=a;
    a=b;
    b=temp;
}
*/

 

posted @ 2013-09-19 14:59  Destino74  阅读(168)  评论(0编辑  收藏  举报