Algoritmo per disposizioni con ripetizione

di il
1 risposte

Algoritmo per disposizioni con ripetizione

Salve a tutti sono nuovo di questo forum, non sono un programmatore ma un appassionato di informatica e di programmazione.
Sto cercando di trovare un algoritmo per rappresentare disposizioni con ripetizione, ho scritto questo:

int main()
{
string lettere[8] = {"a","b","c","d","1","2","3","4"};

string c1 = ""; string c2 = ""; string c3 = ""; string c4 = "";

for(int i=0;i<8;i++)
{
c1=lettere;

for(int x=0;x<8;x++)
{
c2=lettere[x];
}
for(int y=0;y<8;y++)
{
c3=lettere[y];
}
for(int z=0;z<8;z++)
{
c4=lettere[z];
cout << c1+c2+c3+c4 << endl;
}

}
fflush(stdin);
getchar();
return 0;
}

il problema è che a video non mi visualizza tutte le possibili disposizioni, ma visualizza solamente:

a44a
a44b
a44c
a44d
a441
a442
a443
a444
b44a
b44b
b44c
b44d
b441
b442
b443
b444
c44a
c44b
c44c
c44d
c441
c442
c443
c444
d44a
d44b
d44c
d44d
d441
d442
d443
d444
144a
144b
144c
144d
1441
1442
1443
1444
244a
244b
244c
244d
2441
2442
2443
2444
344a
344b
344c
344d
3441
3442
3443
3444
444a
444b
444c
444d
4441
4442
4443
4444

non riesco a capire dove sbaglio. Solamente con 2 disposizioni visualizzo tutto correttamente.

1 Risposte

  • Re: Algoritmo per disposizioni con ripetizione

    Ciao, erano sbagliate le graffe dei cicli for: devono essere tutti annidati, in questo modo
    
        for(int i=0; i<8; i++)
        {
            c1=lettere[i];
    
            for(int x=0; x<8; x++)
            {
                c2=lettere[x];
                
                for(int y=0; y<8; y++)
                {
                    c3=lettere[y];
                    
                    for(int z=0; z<8; z++)
                    {
                        c4=lettere[z];
                        cout << c1+c2+c3+c4 << endl;
                    }
                }
            }
    
        }
Devi accedere o registrarti per scrivere nel forum
1 risposte