Stworzyłem program wypisujący wszystkie anagramy do słowa "kogut", jednakowoż nie działa tak jak powinien. Wyświetla prawidłową ich liczbę 120, jednak litery się powtarzają i nie wszystkie wyrazy mają 5 znaków.
Poniżej podaję kod i serdecznie proszę o poprawę programu :
#include <iostream>
using namespace std;
char napis[6]="kogut";
int main()
{
int i1, i2, i3, i4, i5;
int b=0;
for (i1=0; i1<5; i1++)
{
for(i2=0; i2<5; i2++)
{
if(i1==i2) continue;
for(i3=0; i3<5; i3++)
{
if(i3==i1 || i3==i2) continue;
for(i4=0; i4<5; i4++)
{
if(i4==i1 || i4 ==i2 || i4==i3) continue;
i5=7-i1-i2-i3-i4;
b++;
cout <<b<<" "<< napis[i1] << napis[i2] << napis[i3] << napis[i4] << napis[i5] << endl;
}
}
}
}
return 0;
}