Problem Description
从标准输入读入一个由字符构成的串(不大于30个字符)。
从该串中取出3个不重复的字符,求所有的取法。
取出的字符,要求按字符升序排列成一个串。
不同的取法输出顺序可以不考虑。
从该串中取出3个不重复的字符,求所有的取法。
取出的字符,要求按字符升序排列成一个串。
不同的取法输出顺序可以不考虑。
Input
从标准输入读入一个由字符构成的串(不大于30个字符)。
Output
从该串中取出3个不重复的字符,求所有的取法。
Sample Input
abc abcaa abcd
Sample Output
abc abc abc abd acd bcd
代码如下:
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main ()
{
char str[40],ch[40];
int vis[1000];
int i,j,n,m;
while(~scanf("%s",str)){
int len=strlen(str);
m=0;
memset(vis,0,sizeof(vis));
for(i=0;i<len;i++){
if(vis[str[i]]==0){
ch[m++]=str[i];
vis[str[i]-0]=1;
}
}
for(i=0;i<m-2;i++){
for(j=i+1;j<m-1;j++){
for(n=j+1;n<m;n++){
printf("%c%c%c
",ch[i],ch[j],ch[n]);
}
}
}
}
return 0;
}