c++作业。。

来源:百度知道 编辑:UC知道 时间:2024/05/26 20:50:58
Time Limit:1000MS Memory Limit:65536K
Total Submit:459 Accepted:170

Description

有4个互不相同的数字,输出由其中三个不重复数字组成的排列。

Input

4个整数。

Output

所有排列。

Sample Input

1 2 3 4

Sample Output

1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
1 2 4
1 4 2
2 1 4
2 4 1
4 1 2
4 2 1
1 3 4
1 4 3
3 1 4
3 4 1
4 1 3
4 3 1
2 3 4
2 4 3
3 2 4
3 4 2
4 2 3
4 3 2

asdf

输入的时候是要检查是否有相同的元素的,这样才符合楼主的条件:
#include<iostream>
using namespace std;
int main(){
int a[4],g;
cout<<"input four number:"<<endl;
for(int i=0;i<4;i++)
cin>>a[i];
do{
g=0;
for(i=0;i<4;i++)
{
for(int j=i+1;j<4;j++)
{
if(a[i]==a[j])//检查是否有输入相同的元素,是则重新输入。
{
g=1;
cout<<"input has the same number,try input again!"<<endl;
for(int h=0;h<4;h++)
cin>>a[h];
break;
}
}
}
}while(g==1);
for(i=0;i<4;i++){
for(int j=0;j<4;j++){
for(int k=0;k<4;k++){
if(i!=j && i!=k && j!=k){
cout<<a[i]<<' '<<a[j]<<' '<<a[k]<<endl;
}
else continue;
}
}
}
return 0;
}

#include "iostream.h"

void main()
{
for(int a=1;a&