题目要求:
- 输入2-20个大于0的正整数(1、2、3或者100、200、300),输入0作为结束,0不参与排列。
- 输出这几个整数的全排列,每个数之间用半角“,”隔开,中间不要有空格,每个排列单独一行。
- 程序一定要有Input、Output、End0提示信息,但是不要有格式没有出现的其他提示。
代码实现:
#include <iostream>
#include <string.h>
#include <cmath>
#include <stdio.h>
#include <iomanip>
#include <cstdlib>
using namespace std;
int i=0;
void allsort(int all[],int a,int b){
if(a==b){
for(int j=0;j<i;j++){
if(j==i-1){
cout<<all[j];
break;
}
cout<<all[j]<<",";
}
cout<<endl;
}
else {
for(int k=a;k<=b;k++){
swap(all[k],all[a]);
allsort(all,a+1,b);
swap(all[k],all[a]);
}
}
}
int main(){
cout<<"Input"<<endl;
int a[50]={0};
int getin;
while(true){
cin>>getin;
if(getin!=0){
a[i++]=getin;
}
else break;
}//get the data
cout<<"Output"<<endl;
allsort(a,0,i-1);
cout<<"end"<<endl;
return 0;
}