当前位置: 代码迷 >> C语言 >> 输出由1,2,3,4组成的所有三位数,三位数间无重复数字.怎么写?
  详细解决方案

输出由1,2,3,4组成的所有三位数,三位数间无重复数字.怎么写?

热度:66   发布时间:2008-03-11 12:59:26.0
你用我的啊..楼上的只给了子程序..没主程序当然没办法运行啊...
----------------解决方案--------------------------------------------------------
我是新手,我好羡慕你们啊!有没有愿意教我啊?我学的是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
----------------解决方案--------------------------------------------------------
说明一下!
上边程序中,看似使用循环很麻烦,但正是循环使得程序简洁快速高效,呵呵,不是自夸,这只是小程序的小循环,编译运行不会占用太大内存和时空开销,没有必要考虑时空开销。而且程序完全按照学生要求的意思完成。
----------------解决方案--------------------------------------------------------
  相关解决方案