注解
1、STL的应用,next_permutation生成下一个排列。
2、格式控制:空行、前导0的处理。
代码
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int a[4];
cin>>a[0]>>a[1]>>a[2]>>a[3];
while(a[0] || a[1] || a[2] || a[3]) {
sort(a, a+4);
int last;
for(int i=0; i<4; i++){
if(a[i]){
last = a[i];
break;
}
}
int isFirst = 1;
do {
if(a[0]) {
if(last!=a[0]) {
cout<<endl;
isFirst = 1;
last = a[0];
}
if(isFirst) {
cout<<a[0]<<a[1]<<a[2]<<a[3];
isFirst = 0;
} else {
cout<<" "<<a[0]<<a[1]<<a[2]<<a[3];
}
}
} while(next_permutation(a, a+4));
cout<<endl;
cin>>a[0]>>a[1]>>a[2]>>a[3];
if(a[0] || a[1] || a[2] || a[3]){
cout<<endl;
}
}
return 0;
}