这道题要注意当千位上的数为0的时候,不输出。同时要注意格式,千位相同的在一行,不同的另起一行。最后一行数据输出后,不要再另起一行。
AC代码如下:
#include <bits/stdc++.h>
using namespace std;
int main(){
int a[4]={0},f=0;
while(~scanf("%d%d%d%d",&a[0],&a[1],&a[2],&a[3])){
int d=0;
if(a[0]==0&&a[1]==0&&a[2]==0&&a[3]==0){
break;
}
else{
if(f!=0)
printf("\n\n");
sort(a,a+4);
while(a[0]==0)
next_permutation(a,a+4);
for(int i=0;i<4;i++)
printf("%d",a[i]);
d=a[0];
f=1;
while(next_permutation(a,a+4)){
if(a[0]!=d)
printf("\n");
else
printf(" ");
for(int i=0;i<4;i++)
printf("%d",a[i]);
d=a[0];
}
}
//printf("\n");
}
return 0;
}