SDU 数据结构实验作业

实验一 递归练习

实验内容

1、 输入2-10个大于0的正整数,如果输入0作为结束。
2、 输出这几个整数的全排列,每个数之间用半角“,”隔开,中间不要有空格,每个排列单独一行。
3、 程序一定要有Input、Output、End提示信息,但是不要有格式没有出现的其他提示,以下各实验相同。
4、 程序最后增加system(pause),显示Press any key to continue并暂停。

#include <iostream>
using namespace std;

void Permutation(int data[],int start,int end);
void Swap(int& a,int& b);

int main()
{
	cout<<"Input"<<endl;
	int data[10],i=0;
	while(true){
		cin>>data[i];
		if(data[i]==0){
			break;
		}
		i++;
		
	}
	cout<<"Ouput"<<endl;
	
	Permutation(data,0,i);
//	cout<<"Press any key to continue"<<endl;
	cout<<"End"<<endl;
	system("pause");
	return 0;
 } 
void Permutation(int data[],int start,int end){
 	int i;
 	if(start==end){
 		for(int j=0;j<end;j++){
 			if(j==end-1){
 				cout<<data[j]<<endl;
 				break;
			 }else{
			 	cout<<data[j]<<",";
			 }
		 }
	 }
	 for(i=start;i<end;i++){
	 	Swap(data[start],data[i]);
	 	Permutation(data,start+1,end);
	 	Swap(data[start],data[i]);
	 }
 	
}
void Swap(int& a,int& b){
	int temp;
	temp=a;a=b;b=temp;
}

运行结果:
SDU 数据结构实验作业