#include <iostream.h>
#include <stdio.h>
#define N 4
int A=1,B=2,C=3,D=0; //当D为0或负数时出错!!
int *pt[]={&A,&B,&C,&D};
#define Swapij t=*pt[i];*pt[i]=*pt[j];*pt[j]=t
main()
{
int i,j,t;
int count =0;
while(1){
for (i=0;i<=N-1;i++)
{printf("%d",*pt[i]);}
printf("/n");
count++;
for (i=N-1;i && *pt[i-1]>=*pt[i];i--);
if (i--==0) break;
for (j=N-1;*pt[i]>=*pt[j];j--);
Swapij;
for (i++,j=N-1;i<j;i++,j--) {Swapij;}
}
cout<<count<<endl;
}
#include <stdio.h>
#define N 4
int A=1,B=2,C=3,D=0; //当D为0或负数时出错!!
int *pt[]={&A,&B,&C,&D};
#define Swapij t=*pt[i];*pt[i]=*pt[j];*pt[j]=t
main()
{
int i,j,t;
int count =0;
while(1){
for (i=0;i<=N-1;i++)
{printf("%d",*pt[i]);}
printf("/n");
count++;
for (i=N-1;i && *pt[i-1]>=*pt[i];i--);
if (i--==0) break;
for (j=N-1;*pt[i]>=*pt[j];j--);
Swapij;
for (i++,j=N-1;i<j;i++,j--) {Swapij;}
}
cout<<count<<endl;
}