这道题是全排列问题,主要注意的是格式问题。觉得下面这种写法最为巧妙
#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int a[5],flag=0;
while(~scanf("%d%d%d%d",&a[0],&a[1],&a[2],&a[3]))
{
if(a[0]+a[1]+a[2]+a[3]==0) break;
if(flag) printf("
");
flag = 1;
sort(a,a+4);
int tmp ,tag=1;
do{
if(a[0]==0) continue;
if(tag==1){
printf("%d%d%d%d",a[0],a[1],a[2],a[3]);
tag = 0;
}
else if(tmp==a[0])
printf(" %d%d%d%d",a[0],a[1],a[2],a[3]);
else
printf("
%d%d%d%d",a[0],a[1],a[2],a[3]);
tmp=a[0];
}while(next_permutation(a,a+4));
printf("
");
}
return 0;
}