比如说,给定一个数组{1 2 3 4 5}
求先从里面选任意两个数组合,再从剩下的再选两个数组合,公用几种选发?
最后能输出类似
12 34
12 35
12 45
13 24
.
.
.
我目前只能做到第一次选择
int a[]={1 ,2 ,3 ,4 ,5}, i, j, k,m
for(i=0;i<=3;++i)
for(j=i+1;j<=4;++j)
{
之后第二选择不知道该怎么办,主要是不知道怎么表达还没有选择的数(就是去掉a[i],a[j]之后的a[])
对于会的人应该是个很简单的问题吧?
希望大家帮帮我~谢谢!
谢谢大家的回答~
不过wangqifangf的答案好像是直接5选4,不是我要求的“选2再选2”吧~
song2692005的答案给我有了思路了,不过为什么只强调了k不等于i,j,m不是也应该不等于i,j吗?(还是说我太菜没看懂程序?)
#include <iostream>
using namespace std;
int main(){
int a[]={1 ,2 ,3 ,4 ,5}, i, j, k,l;
for(i=0;i<=4;i++)
{
for(j=0;j<=4;j++)
{
for(k=0;k<=4;k++)
{
for(l=0;l<=4;l++)
{
if ( i != j && i != k && i != l && j != k && j != l && k != l ){
cout<<a[i]<<" "<<a[j]<<" "<<a[k]<<" "<<a[l]<<endl;
}
}
}
}
}
system("PAUSE");
}
参考资料:刚跑完
参考资料:自己想的