作者chaselsu (寻...)
看板b96902HW
标题Re: ffd
时间Tue Jul 30 11:08:10 2013
不知道你後面的顺序是怎样 这顺序还真奇怪
不过还是照你的要求写看看XD
#include<stdio.h>
int len;
void permutation(int orlayer,int layer, int *que)
{
int i;
if(layer==len){
for(i=0;i<len;i++){
printf("%c",que[i]);
}
printf("\n");
}
else{
for(i='A';i<'A'+len;i++){
if(!(layer==orlayer && i==que[orlayer-1])){
que[layer]=i;
permutation(orlayer,layer+1,que);
}
}
}
}
int main()
{
char in;
int i,j,k;
int que[26];
scanf("%c",&in);
len=in-'A'+1;
for(i=len;i>0;i--){
for(j='A';j<=in;j++){
for(k=0;k<i;k++)
que[k]=j;
permutation(i,i,que);
}
}
}
※ 引述《eden0315 (贡丸^^~)》之铭言:
: 请问一个程式问题:
: 我输入C 会跑出AAA BBB CCC AAB AAC BBA BBC CCA CCB
: 我改了很久都改不出来这样的排列组合
: #include<stdio.h>
: #include<stdlib.h>//AAA BBB CCC AAB AAC BBA BBC CCA CCB ....
: int main(){
: char i,j,k;
: char op;
: char a,b,c,d;
: printf("请输入一个英文字母:");
: scanf("%c",&op);
: for(i='A';i<=op;i++)
: {
: for(j='A';j<=op;j++)
: printf("%c",i);
: printf(" ");
: }
: for(a='A';a<=op;a++)
: {
: for(b=op;b>'A';b--)//印次数
: {
: for(c=op;c>='A';c--)//印出几个字
: if(c>'A')
: printf("%c",a);
: if(c='A'){
: for(d='A';d<=op;d++)
: if(d!=a)
: printf("%c",d);
: }
: printf(" ");
: }
: }
: system("pause");
: return 0;
: }请问一下该怎麽改 这是我写到一半的
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 223.138.206.100