Ho bisogno di scrivere una funzione che dato un vettore di interi mi stampi tutte le possibili combinazioni a k a k per ogni k; esempio se ho un vettore di 5 elementi 1,2,3,4,5 con k=3 avrei:
123,124,125,134,135,145,234,235,245,345
ho trovato in rete questo algoritmo, se mi potete dare una mano a tradurlo in c ve ne sarei molto grato...
comb40()
Prgm
Local i,j
DelVar cc
true->kappa
immiss()
false->kappa
8->ri:8->co
ClrIO
Define combinas()=Prgm
k->i
While i>=1
If aa[i]<n-k+i Then
aa[i]+1->aa[i]
For j,i+1,k
aa[j-1]+1->aa[j]
EndFor
0->i
EndIf
i-1->i
EndWhile
EndPrgm
Define tutte()=Prgm
Loop
aa->bb
combinas()
If not copia(aa,bb,k) Then
stampa(aa,ri,co,k)
co+48->co
If co>235 Then
ri+18->ri:8->co
EndIf
Else
Exit
EndIf
EndLoop
EndPrgm
stampa(aa,ri,co,k)
co+48->co
tutte()
EndPrgm
Per n=3 e k=2