从标准输入读入一个由字母构成的串(不大于30个字符)。
从该串中取出3个不重复的字符,求所有的取法。
取出的字符,要求按字母升序排列成一个串。
不同的取法输出顺序可以不考虑。
例如:
输入:
abc
则输出:
abc
输入:
abcd
则输出:
abc
abd
acd
bcd
输入:
abcaa
则输出:
abc
1 #include<stdio.h> 2 #include<string.h> 3 char s[50]; 4 int index=0; 5 void reSort(char *pArray, int remainNum, int printLen) 6 { 7 if (remainNum < printLen)return; 8 if (printLen <= 0) 9 { 10 for(int i=0;i<index;i++) 11 putchar(s[i]); 12 putchar('\n'); 13 return; 14 } 15 for(int i = 0; i < remainNum; i++) 16 { 17 s[index++]=pArray[i]; 18 reSort(pArray+i+1, remainNum-i-1, printLen-1); 19 index--; 20 } 21 } 22 23 int main() 24 { 25 char s[30],str[30],flag[27]={0}; 26 gets(s);//输入一个串 27 int len = strlen(s),j=0; 28 for(int i=0;i<len;i++) 29 { 30 if(!flag[s[i]-'a']) 31 { 32 str[j++]=s[i]; 33 flag[s[i]-'a']=1; 34 } 35 } 36 str[j]=0;//形成串 37 reSort(str, strlen(str), 3); 38 getchar(); 39 return 0; 40 }