Hogyan lehet a konzolra kiíratni az alábbi mintát?
//\\//\\//\\
\//\\//\\//\
\\//\\//\\//
/\\//\\//\\/
\\//\\//\\//
Ezt.
Akármekkora méret esetén működjön és akár 3 vagy 4 pálcikával is, tehát nem feltétlen csak 2 pálcikánként tudjon váltani.
Komolyan kérdezem, már csak tanulás miatt is: mi a különbség?
Akár nagyjából pszeudokód formájában is érdekelne.
Ennél jóval könnyebb mintákat találtam a neten, azokat már megoldottam, ez ráadásul nekem jutott eszembe és 1 óra alatt nem jutottam túl sokra, illetve pár exception-t kaptam... :D
Attól függ, mit és hogyan akarsz paraméterezni. Sorok száma? Sorok hossza?
Itt egy példa CPP-ben
N: sorok száma
M: oszlopok száma
K: pálcikák száma
void writePattern(int N, int M, int K)
{
    int start_idx = 0;
    for(int i=0; i<N; i++)
    {
        int inner_idx = start_idx;
        for(int j=0; j<M; j++)
        {
            std::cout << (inner_idx < K ? "/" : "\\");
            inner_idx = (inner_idx + 1) % (2*K);
        }
        std::cout<<std::endl;
        if(start_idx == 0)
            start_idx = 2*K;       
       
        start_idx--;
       
    }
}
Pontosabban tömböt (egyét gyűjteményt) feltölteni és azt kiíratni. Ezt lehagytam. :(
Az a része menne, hogy kiíratni, feltölteni nem tudom.
Miért felesleges?
Honnan tudod, hogy utána ki kell menteni egy fájlba vagy kiírni a konzolra?
Úgy életszerűbb, ha egy gyűjtemény megkapja ezt az értéket, aztán azzal azt csinál a program a továbbiakban, amit csak akar.
Hacsak nem akarod a mintát a futás során felhasználni valamilyen egyéb feladathoz, fölösleges.
Konzolra, fájlba kiírni lehet folyamatosan, ahogy generálod a mintát, és így nem pazarolsz memóriát egy tömb fenntartására.
Mi így tanuljuk, jellemzően így csináljuk.
Ha később derül ki, hogy a konzol helyett vagy mellett fájlba kell írni, akkor nehezebb módosítani a kódot, nem?
Ez nekem az életben nem jutna eszembe:
std::cout << (inner_idx < K ? "/" : "\\");
inner_idx = (inner_idx + 1) % (2*K);
Ilyenkor érzem azt, hogy nekem sohasem fog menni. :(
"Ha később derül ki, hogy a konzol helyett vagy mellett fájlba kell írni, akkor nehezebb módosítani a kódot, nem?"
A streamet át tudod irányítani. Akár egy bufferbe is.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!