Hier ein Beispiel, das die Zahlen eines Arrays hochzählt:
Code:
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#define max 5
int main()
{
char out[2 + 2 + 2 + 3 + 3 * max];
int table[max];
for(int i = 0; i < max; i++) table[i] = 1;
bool done = false;
while(!done)
{
table[0]++;
for(int i = 0; i < max; i++)
{
if(table[i] > max)
{
if(i < max - 1)
{
table[i + 1]++;
table[i] = 1;
}
else
{
done = true;
break;
}
}
}
if(!done)
{
out[0] = 0;
wsprintfA(out, "\n\t%.2i", table[0]);
for(int i = 1; i < max; i++) wsprintfA(out, "%s - %.2i", out, table[i]);
printf("%s", out);
}
}
getch();
return 0;
}
Für deine Zwecke könntest du noch so etwas hinzufügen:
Code:
char *Set = "abcdefghijklmnopqrstuvwxyz";
#define max 26;
//...
for(int i = 0; i < max; i++)
table[i] = Set[table[i]]; // um die indizen in zeichen umzuwandeln
Es gibt jedoch bessere Möglichkeiten, das zu lösen (habe den Code nur grad gepostet, weil ich ihn für die Schule coden musste) - ich denke, dass dieser Code etwas langsamer ist, obwohl das vom Compiler und dessen Optimierung abhängt. Besser wäre eventuell die Verwendung von Permutation.
Greetz, f0Gx