----------------解决方案--------------------------------------------------------
我是新手,我好羡慕你们啊!有没有愿意教我啊?我学的是C语言。
----------------解决方案--------------------------------------------------------
!!
看起来有点复杂耶! ----------------解决方案--------------------------------------------------------
# include<iostream.h>
void main()
{
int a,b,c,d;
for(a=1;a<=4;a++){
for(b=1;b<=4;b++){
if(b==a)continue;
for(c=1;c<=4;c++){
if(c==a||c==b)continue;
cout<<a<<b<<c<<endl;
}
}
}
----------------解决方案--------------------------------------------------------
他要的是排列组合不一定是数字...而且一旦出现的不是连续得1234呢?你的会有问题....
----------------解决方案--------------------------------------------------------
运行正常.24个排列数.
----------------解决方案--------------------------------------------------------
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{ int a[4]={1,2,3,4},x,y,z;
for(x=0;x<4;x++)
for(y=0;y<4;y++)
for(z=0;z<4;z++)
{if(x==y||x==z||y==z)
continue;
cout<<a[x]<<a[y]<<a[z]<<endl;
}
system("pause");
}
----------
如果是字符,就定义char。。。
----------------解决方案--------------------------------------------------------
都喜欢这样写。要是有100个数得排列是不是要写100个循环呢?而且程序运行的效率也是要考虑的。。。
----------------解决方案--------------------------------------------------------
看我的
#include<stdio.h>main()
{
int i,j,k,m;
inta[4]={1,2,3,4};
for(i=0;i<=3;i++)
for(j=0;j<=3;j++)
for(k=0;k<=3;k++)
{
m=a[i]*100+a[j]*10+a[k];
if(i==j||j==k||i==k)continue;
println("%d\n",m);
}
编译运行结果如下:123
124
132
134
142
143
213
214
231
234
241
243
312
314
321
324
341
342
412
413
421
423
431
432
----------------解决方案--------------------------------------------------------
说明一下!
上边程序中,看似使用循环很麻烦,但正是循环使得程序简洁快速高效,呵呵,不是自夸,这只是小程序的小循环,编译运行不会占用太大内存和时空开销,没有必要考虑时空开销。而且程序完全按照学生要求的意思完成。 ----------------解决方案--------------------------------------------------------