版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Lydia_r/article/details/88771316
<algorithm>头文件的next_permutation()函数 了解一下
#include <stdio.h>
#include <algorithm>
using namespace std;
int main(){
const int size=4;
int a[size],tag=0;
while(scanf("%d %d %d %d",&a[0],&a[1],&a[2],&a[3])){
if(a[0]==0&&a[1]==0&&a[2]==0&&a[3]==0)
return 0;
if(tag)
printf("\n");
tag=1;
int flag=1,tmp=10;
do{
if(a[0]==0)
continue;
if(flag){
printf("%d%d%d%d",a[0],a[1],a[2],a[3]);
flag=0;
}else if(tmp==a[0]){
printf(" %d%d%d%d",a[0],a[1],a[2],a[3]);
}else if(tmp!=a[0]){
printf("\n%d%d%d%d",a[0],a[1],a[2],a[3]);
}
tmp=a[0];
}while(next_permutation(a,a+size));
printf("\n");
}
return 0;
}