Witam. Napisałem program który wypisuje wszystkie kombinacje znaków zawartych w "char znaki[]" . Użytkownik podaje tylko ile znaków może być wynikiem.
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <string>
using namespace std;
char znaki[]={'a','b','c'};//"abcdefghijklmnoprstuwyzABCDEFGHIJKLMNOPRSTUWYZ1234567890!@#$%^&*_-=+,.;:`~";
int znakow=sizeof(znaki);
char haslo[21];
int ilosc;
void func(int pozycja, char haslo[])//ilosc znakow, pozycja w hasle, haslo
{
int cos2=pozycja;
cos2++;
Sleep(10);
for(int i=0;i<znakow;i++)
{
if(pozycja<ilosc)
{
func(cos2, haslo);
}
haslo[-pozycja+ilosc]=znaki[i];
cout<<"pozycja: "<<pozycja<<" haslo: "<<haslo<<endl;
}
}
int main()
{
for(int y=0;y<20;y++)
{
haslo[y]=' ';
}
cout<<"podaj ilosc znakow"<<endl;
cin>>ilosc;
ilosc--;
cout<<endl;
Sleep(50);
func(0, haslo);
}
program wypisuje kombinacje tylko wyniki są dziwne co trzeci wyraz jest odwrócony a wyrazy wychodzą w dziwnej kolejności i nie za bardzo wiem jak to poprawić ;/ proszę o pomoc