001
16.12.2009, 00:50 Uhr
0xdeadbeef
Gott (Operator)
|
Naja, genau genommen müsstest du x Schleifen ineinander verschachteln, und das ist so direkt nicht möglich. Wonach du suchst, ist ein rekursiver Backtracking-Algorithmus, etwa so:
C++: |
/* UNGETESTET */
#include <stddef.h> #include <stdio.h>
void print_combos(char const *const *data, size_t x, size_t n, char *buffer, size_t depth) { if(depth == x) { buffer[depth] = '\0'; puts(buffer); } else { size_t i;
for(i = 0; i < n; ++i) { buffer[depth] = data[depth][i]; print_combos(data, x, n, buffer, depth + 1); } } }
|
wobei buffer ein Zeiger auf ein char-Array der Größe x + 1 und depth beim ersten Aufruf 0 ist. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 16.12.2009 um 00:52 Uhr von 0xdeadbeef editiert. |