| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1868 人关注过本帖
标题:[求助]打印出1,2。。N的所有组合
取消只看楼主 加入收藏
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
结帖率:83.33%
收藏
 问题点数:0 回复次数:9 
[求助]打印出1,2。。N的所有组合
打印出1,2。。N的所有组合
比如说 1,2,3
是先输入一组数然后在输出
123 132 231 213 321 312
比如说 1,3,4
143 134 431 413 341 314

[此贴子已经被作者于2006-10-28 14:31:22编辑过]

搜索更多相关主题的帖子: 打印 
2006-10-27 21:55
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 

哦哦 可是着个不是我想要的啊 我要的是任意输入数啊


羊肉串 葡萄干 哈密瓜!!
2006-10-27 22:12
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
以下是引用suifengjita在2006-10-27 22:21:59的发言:
#include<stdio.h>
int main()
{
int a,b,c;
for(a=1;a<=3;++a)
{
for(b=1;b<=3;++b)
{
for(c=1;c<=3;++c)
{
if(a!=b&&a!=c&&b!=c)
printf("%d%d%d ",a,b,c);
}
}
}
return 0;
}
我刚学程序,只能编出固定n的

#include<stdio.h>
#include"string.h"
int main()
{
int a,b,c,i;
char s[10];
scanf("%s",s);
i=strlen(s);
for(a=s[0]-'0';a<=s[i-1]-'0';++a)
{
for(b=s[0]-'0';b<=s[i-1]-'0';++b)
{
for(c=s[0]-'0';c<=s[i-1]-'0';++c)
{
if(a!=b&&a!=c&&b!=c)
printf("%d%d%d ",a,b,c);
}
}
}
return 0;
}


羊肉串 葡萄干 哈密瓜!!
2006-10-28 14:27
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
我想要的是 比如说 输入 2 5 8
然后打印2 5 8 的所有组合

羊肉串 葡萄干 哈密瓜!!
2006-10-28 14:29
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 

恩恩 就是着样


羊肉串 葡萄干 哈密瓜!!
2006-10-28 14:46
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
以下是引用C语言学习者在2006-10-28 14:36:08的发言:
我想问LZ,是不是三种组合。如果是这个,如果是其它那么很麻烦。
#include<stdio.h>
#define N 80
void main()
{
int i,j,k=0;
char c[N],c1[N],t;
do{printf("请任意输入3个字符\n");
gets(c);
for(i=0;c[i]!='\0';i++)
{
c1[i]=c[i];
k++;
}
if(k==3)
for(i=0;i<k-1;i++)
for(j=0;j<k;j++)
{
printf("%s\n",c);
if(j+1!=k)
{t=c[j];
c[j]=c[j+1];
c[j+1]=t;}
else
{t=c[j];
c[j]=c[0];
c[0]=t;}
}
else
printf("输入有误\n");
}while(k!=3);

}

我又改了一下,着就是我想要的了
#include<stdio.h>
#define N 80
void main()
{
int i,j,k=0,p;
char c[N],c1[N],t;
do{printf("请任意输入N个字符\n");
gets(c);
for(i=0;c[i]!='\0';i++)
{
c1[i]=c[i];
k++;
}

for(p=0;p<k-1;p++)
for(j=0;j<k;j++)
{
printf("%s\n",c);
if(j+1!=k)
{t=c[j];
c[j]=c[j+1];
c[j+1]=t;}
else
{t=c[j];
c[j]=c[0];
c[0]=t;}
}

}while(i!=strlen(c));


}


羊肉串 葡萄干 哈密瓜!!
2006-10-28 15:05
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
以下是引用C语言学习者在2006-10-28 15:17:27的发言:
认真看我的程序,LZ忽略细节,我的程序针对三种组合,超越三种是没有办法。第九楼调库函数方法不错,值得我学习,如果不调用库函数,怎样做是一件麻烦的事。

可以啊
你输入 123456789就输出
123456789
213456789
231456789
234156789
234516789
234561789
234567189
234567819
234567891
134567892
314567892
341567892
345167892
345617892
345671892
345678192
345678912
345678921
145678923
415678923
451678923
456178923
456718923
456781923
456789123
456789213
456789231
156789234
516789234
561789234
567189234
567819234
567891234
567892134
567892314
567892341
167892345
617892345
671892345
678192345
678912345
678921345
678923145
678923415
678923451
178923456
718923456
781923456
789123456
789213456
789231456
789234156
789234516
789234561
189234567
819234567
891234567
892134567
892314567
892341567
892345167
892345617
892345671
192345678
912345678
921345678
923145678
923415678
923451678
923456178
923456718
923456781

羊肉串 葡萄干 哈密瓜!!
2006-10-28 15:24
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
以下是引用nuciewth在2006-10-28 15:17:30的发言:

去看看我的全排列帖吧.应该可以解决这个问题,不过也不可以测试很多的数.

已经解决了


羊肉串 葡萄干 哈密瓜!!
2006-10-28 15:27
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
以下是引用nuciewth在2006-10-28 15:28:51的发言:
呵呵,我还以为你要多一个方法呢,那就算了吧.
算我灌水...

啥 那有啊 我看看啊


羊肉串 葡萄干 哈密瓜!!
2006-10-28 15:52
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
以下是引用C语言学习者在2006-10-28 15:33:30的发言:
n=9,
n!=362880个.

对对 ,我没仔细看


羊肉串 葡萄干 哈密瓜!!
2006-10-28 16:04
快速回复:[求助]打印出1,2。。N的所有组合
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030989 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved