/* Just enter a string, say "abcd" and it will print all possible combinations, i.e., abcd abdc acbd acdb adbc adcb bacd badc bcad bcda bdac bdca cabd cadb cbad cbda cdab cdba dabc dacb dbac dbca dcab dcba */ # include <stdio.h> # include <string.h> int length, *loopvar; char string[100]; void combination(int varcount) { int i, j, k; if (varcount == length) { for (i = 0; i < length; i++) putchar(string[loopvar[i]]); putchar('\t'); } else for (i = 0; i < length; i++) { loopvar[varcount] = i; for (j = 0; j < varcount; j++) for (k = j + 1; k <= varcount; k++) if (loopvar[j] == loopvar[k]) goto end; combination(varcount + 1); end: ; } } void main() { printf("Enter the string: "); scanf("%s", string); loopvar = new int[length = strlen(string)]; combination(0); delete loopvar; }
Copyright © 1999-2008 Krishna Kumar, All Rights Reserved.