有字母ABCD,请用C语言编写程序,输出由该四个字母组成的字符串.要求如下:

1.包含其中任意三个字母;
2.不允许重复;
3.输出满足以上1,2要求的全部字符串

典型的排列组合的问题啊。

这个程序不错的:
#include<stdio.h>
void main(void)
{
char ch[]="ABCD";
int i,j,k,n=4;
int m=0;

for(j=0;j<n;j++)
{
for(k=0;k<n;k++)
{
for(i=0;i<n;i++)
{
if(i!=j&&j!=k&&i!=k)
{
printf("%c%c%c\n",ch[j],ch[k],ch[i]);
m++;
}
}
}
}
printf("==%d==\n",m);
getchar();
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-11-08
一共是24个

#include<stdio.h>
void main(void)
{
char ch[]="ABCD";
int i,j,k,n=4;
int m=0;
for(j=0;j<n;j++)
{
for(k=0;k<n;k++)
{
for(i=0;i<n;i++)
{
if(i!=j&&j!=k&&i!=k)
{
printf("%c%c%c\n",ch[j],ch[k],ch[i]);
m++;
}
}
}
}
printf("==%d==",m);
getch();
}
第2个回答  2008-11-08
写了个~~

你自己看看 希望对你有用

========================================================

#include<stdio.h>

void out(char a,char b,char c);

int main()
{

out('A','B','C');
out('A','B','D');
out('A','C','D');
out('B','C','D');

return 0;

}

void out(char m,char n,char t)
{
char c[3];

c[0]=m;c[1]=n;c[2]=t;

printf("%c%c%c\n",c[0],c[1],c[2]);
printf("%c%c%c\n",c[0],c[2],c[1]);
printf("%c%c%c\n",c[1],c[0],c[2]);
printf("%c%c%c\n",c[1],c[2],c[0]);
printf("%c%c%c\n",c[2],c[0],c[1]);
printf("%c%c%c\n",c[2],c[1],c[0]);

}
第3个回答  2008-11-08
//试试这个:)
#include<stdio.h>
void main(void)
{char ch[]="ABCD";
int i,j,k,n=4;
for(j=0;j<n;j++)//第一个字母
{
for(k=0;k<n;k++)//第二个字母
{
if(i!=j)
{
for(i=0;i<n;i++)//第三个字母
{if(i!=j&&i!=k)printf("%c%c%c\n",ch[j],ch[k],ch[i]);
}
}
}
}
getch();
}
第4个回答  2008-11-08
#include"stdio.h"
int a[5]={0,0,1,2,3}, n=4,count=0; //如果你要增加个数.可以改变a[]和n;
char str[4]="ABCD";
void perm(int k)
{
int t,j;

if( k==n )
{for(j=1;j<=3;j++)
printf("%2c",str[a[j]]);
printf("\n");
return;
}
for(j=k;j<=n;j++)
{t=a[k];a[k]=a[j];a[j]=t;perm(k+1);t=a[k];a[k]=a[j];a[j]=t;}
}
main()
{
perm(1);
}
你看看这个吧.这个能把每一组不同顺序的字母列出来.
第5个回答  2008-11-08
看看我这个浪费资源的程序吧
我想这是出题者想看到的
#include <stdio.h>
#include <string.h>
char array[4]={'A','B','C','D'};
char str[30][4];
int main(void)
{
int num=0;
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
for(int k=0;k<4;k++)
if((i!=j)&&(j!=k)&&(i!=k))
{
str[num][0]=array[i];
str[num][1]=array[j];
str[num][2]=array[k];
str[num][3]=0;
num++;
}
for(int h=0;h<num;h++)
printf("%s\n",str[h]);
return 0;
}

有字母ABCD,请用C语言编写程序,输出由该四个字母组成的字符串.要求如下...
这个程序不错的:include<stdio.h> void main(void){ char ch[]="ABCD";int i,j,k,n=4;int m=0;for(j=0;j<n;j++){ for(k=0;k<n;k++){ for(i=0;i<n;i++){ if(i!=j&&j!=k&&i!=k){ printf("%c%c%c\\n",ch[j],ch[k],ch[i]);m++;} } } } printf("=...

C语言中怎样设计一个输出四个不同字母所有组合情况的程序?
楼上对了。用四个循环,把字符串分成4个字符,不断组合,除去相同字符的组合。就这样简单的完成了回答。

如何用c语言实现输入四个字母输出所有字母
1、写好开头#include<stdio.h>,void main()。2、输入一对大括号{},之后所有的步骤都在其中进行 ,定义整形变量n1,n2,n3,n4和字符变量c。3、通过循环控制字符串输入并判断(while循环时需加一组大括号)。4、用if语句判断字符的类型if(c>='a'&&c<='z'||c>='A'&&c<='Z');n1++;else...

C语言对字符串进行大小写组合输出
现在需要列出abcd四个字母的组合,可以把所有出现的字母分为4组,每组是每个字母的大小写。Aa Bb Cc Dd 只需要从每个组合中挑选一个字母,然后找出所有的情况,就可以满足需求。给你一个提示,使用递归来实现。先从字母A开始,有两种情况:A和a。然后就有了两个分支:a Bb Cc Dd A Bb Cc Dd 然...

初学C语言,想输入一堆abcd,然后统计出abcd各有几个,求指点
include<stdio.h> void main(){ char str[100000];int i, a, b, c, d;i = a = b = c = d =0; \/* 对变量初始化 *\/ gets(str);while(str[i] != '\\0'){ if(str[i] == 'a')a ++;else if(str[i] == 'b')b++;else if(str[i] == 'c')c++;else if(str...

用C语言写出:产生四位随机验证码,只包括小写字母
char a[27]="abcdefghijklmnopqrstuvwxyz";\/\/定义一个包含26个小写字母的字符串 int i,j;srand((int)time(0));\/\/初始化随机数发生器 for(i=0;i<4;i++){ j= rand()%26;\/\/取得0~25的随机数 printf("%c",a[j]);\/\/从字符串中随机取一个小写字母,并循环四次,获得四个随机的小写...

在C语言中,如何输入一个四个字母组成的单词,将每个字符反向输出。比如...
include<stdio.h> void main(){ int i;char a[4];\/\/定义数组含有4个元素 \/\/顺序录入字母 for(i=0;i<=3;i++) \/\/数组由于是从a[0]开始~a[3],共计4个元素 scanf("%c",&a[i]);\/\/倒序输出字母 for(i=3;i>=0;i--)printf("%3c",a[i]);printf("\\n");} ...

麻烦各位牛人,用C语言写个程序,输出 A ABA ABCBA ABCDCBA 怎么输出...
其实你的程序里面只要改一个地方就好了 就是 for(j=1;j<=2*i-1;j++)这句话里面的j你换一个字母,不要用j,在重新定义一个字母换进去,我试过了,可以的

编写一个c程序,输出以下图案* *** ***
程序如下:include<stdio.h> int main() { int i,j,k; for(i=1;i<=4;i++) \/\/先打印上边的四行 { for(j=1;j<=4-i;j++) \/\/控制要打印的空格数量 printf(" "); for(k=1;k<=2*i-1;k++) \/\/控制要打印的星号数 printf("*"); printf("\\n"); } for(i=1;i<=3;i...

...c程序向屏幕交替输出26个大小写字母,如:A b C d E...
char c,i; for(i=0;i<26;i++) if(i%2==0)printf("%c ",'A'+i); else printf("%c ",'a'+i); printf("\\n"); } 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 阿四哥vlog 2021-01-20 · 超过36用户采纳过TA的回答 知道小有建树答主 回答量:607 采纳率:0% 帮助的人...

相似回答