子集问题

 1 #include<stdio.h>
 2 #include<string.h>
 3 
 4 char s[50];
 5 int index=0;
 6 void reSort(char *pArray, int remainNum, int printLen)
 7 {
 8     if (remainNum < printLen)return;
 9     if (printLen <= 0)
10     {
11         for(int i=0;i<index;i++)
12             putchar(s[i]);
13         putchar('\n');
14         return;
15     }
16     for(int i = 0; i < remainNum; i++)
17     {
18         s[index++]=pArray[i];
19         reSort(pArray+i+1, remainNum-i-1, printLen-1);
20         index--;
21     }
22 }
23 
24 int main()
25 {
26     char str[]="abcde";
27     int arrayLen = strlen(str);
28     for (int printLen=1; printLen<=arrayLen; printLen++)
29         reSort(str, arrayLen, printLen);
30     getchar();
31     return 0;
32 }

posted @ 2013-05-02 10:55  浪浪辛  阅读(209)  评论(0)    收藏  举报