Hirdetés

Új hozzászólás Aktív témák

  • Jester01
    veterán

    Még mindig bajlódok a 4-es feladattal.
    Ez a kód jött ki,de nem működik megfelelően:

    int i,j,k, visszaford, max, index = 0; //az index azt jelenti,hogy hol áll épp az abc-ben
    char karakterek = 97;

    scanf("%d %d", &visszaford, &max); //itt olvasom be a visszafordulási ill. azt az értéket,hogy meddig írja ki


    for (i = 0; i < max; i++) {
    for(j=0;j < visszaford;j++) { //ez a rész ír előrefele
    printf("%c", karakterek);
    karakterek++;
    index++;
    }

    if (index >= visszaford) {
    for (k=0; k!=max-visszaford;k++){ //ez pedig visszafele
    --karakterek;
    printf("%c", karakterek);
    }
    }
    }

    Itt a program lényeges része,azt tudom,hogy az index-szel van a baj,de nem jövök rá,hogy mi.

    Hát mert nem úgy csináltad, ahogy mondtam :P
    Egy ciklus kell összesen, nem 3. Viszont kell egy változó ami mutatja éppen le vagy fel mész.
    Valahogy így:

    int lepes = 1;
    int index = 0;
    for(i = 0; i < max - 1; i++)
    {
    printf("%c", 'a' + index);
    index += lepes;
    if (index >= visszaford)
    {
    index = visszaford - 2; /* a minta szerint a felso fordulopontot csak egyszer irjuk ki */
    lepes = -1;
    }
    if (index < 0) {
    index = 0; /*a minta szerint az also fordulopontot ketszer irjuk ki */
    lepes = 1;
    }
    }

Új hozzászólás Aktív témák