my prev code was incorrect :- here is the correct code :-
void combination(char str[3][100],int len,int row,int j) { static char prn[3]; int i=0,k=0,p=0; if(j==2) { prn[j]='\0'; printf("\n%s",prn); return; } for(p=row;p<len;p++) { for(k=0;k<strlen(str[p]);k++) { prn[j]=str[p][k]; combination(str,len,p+1,j+1); } } } call : combination(str,len,0,0); // len = number of words for input : str[3][100]={"hello","how","a"}; output :- hh ho hw ha eh eo ew ea lh lo lw la lh lo lw la oh oo ow oa ha oa wa On 10/1/12, ~*~VICKY~*~ <venkat.jun...@gmail.com> wrote: > Hi atul, > > Thanks for your response. I found your idea matches very much with my > approach which i claimed buggy. The problem in my code is that It prints > some extra strings in the end. For eg for the below input it prints > 24(5*3+3*3) comb instead of 15(5*3). I couldn't recognize how to resolve > it. Could any1 help me out. > > #include<iostream> > #include<string> > #include<cstdio> > > string str[]={"hello", "how","a"}; > > void print_all(string sel, int k,int n) > { > if(k == n){ > static int count =1; > cout<<"---->"<<count++<<" "<<sel<<endl; > return; > } > for(int i = k; i < n ; i++) > { > for(int j = 0; j < str[i].length(); j++) > { > print_all(sel+str[i][j], k+1,n); > } > } > } > int main() > { > print_all("",0,2); > } > //code ends > > On Mon, Oct 1, 2012 at 12:33 AM, atul anand <atul.87fri...@gmail.com> > wrote: > >> void combination(char str[2][100],int len,int row,int j) >> { >> static char prn[3]; >> int i=0,k=0,p=0; >> >> if(j==2) >> { >> prn[j]='\0'; >> printf("\n%s",prn); >> } >> for(p=row;p<len;p++) >> { >> for(k=0;k<strlen(str[row]);k++) >> { >> prn[j]=str[row][k]; >> combination(str,len,p+1,j+1); >> >> } >> } >> } >> >> call : combination(str,len,0,0);// len = number of words in your eg call >> will be >> combination(str,2,0,0); >> >> On 9/30/12, ~*~VICKY~*~ <venkat.jun...@gmail.com> wrote: >> > Given 'n' arrays each of variable sizes. Write code to print all >> > combinations. Each combination contains one element from one array >> > each. >> > For eg: >> > string str[]={"hello", "how"} >> > >> > op will be >> > hh >> > ho >> > hw >> > eh >> > eo >> > ew >> > lh >> > lo >> > lw >> > lh >> > lo >> > lw >> > oh >> > oo >> > ow >> > >> > 15 sets would come, includes repetition. >> > >> > My approach had bugs and didn't work. Help would be appreciated. >> > >> > >> > >> > >> > -- >> > Cheers, >> > >> > Vicky >> > >> > -- >> > You received this message because you are subscribed to the Google >> > Groups >> > "Algorithm Geeks" group. >> > To post to this group, send email to algogeeks@googlegroups.com. >> > To unsubscribe from this group, send email to >> > algogeeks+unsubscr...@googlegroups.com. >> > For more options, visit this group at >> > http://groups.google.com/group/algogeeks?hl=en. >> > >> > >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Algorithm Geeks" group. >> To post to this group, send email to algogeeks@googlegroups.com. >> To unsubscribe from this group, send email to >> algogeeks+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/algogeeks?hl=en. >> >> > > > -- > Cheers, > > Vicky > > -- > You received this message because you are subscribed to the Google Groups > "Algorithm Geeks" group. > To post to this group, send email to algogeeks@googlegroups.com. > To unsubscribe from this group, send email to > algogeeks+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/algogeeks?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to algogeeks@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.