Hirdetés

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

  • amit irsz, igy ranezesre jo. tehat tegyuk fel, hogy a beolvasas megvan.
    a listaz fv-ben megallapitod a min es max evet amit majd a kimenetbe irsz. itt egy kis bug szerintem, a max-ban a tavozast kellene nezni, nem az erkezest.

    tovabb az en javaslatom:
    lesz egy tombod amit az evvel indexelsz ( (ev-min)-nel konkretan, hogy uljenek az indexek). ez a tombod jegyzi meg az evben ott levo elefantok nevet. Ezt szerintem legegyszerubb lancolt listaval (mivel elore nem tudod, hogy mennyi elefant lesz az adott evben, igy elore nem tudnad a tombot lefoglalni. persze lehet lefoglalni tobbet..)
    szoval a tombod minden eleme egy lancolt lista elejere fog mutatni. a lista elemei lehetnek mutatok az elefant structokra. egy ciklusban vegigmesz az osszes elefanton, es az eves tombodbe a listakba hozzaadod a megfelelo evekhez.

    ha nincs kedved a lancolt listahoz, lehet csinalni tombbel is, akkor lefoglalsz akkora tomboket mint amennyi elefant osszesen van.
    ha pedig csak kiiratni kell, akkor lehet akar egyenesen stringbe is gyujteni a neveket evek szerint, ez is kicsit maceras, hiszen oda kell figyelni, hogy eleg hely legyen lefoglalva
    lehet mashogy is csinalni, de gondolom nincs egy elefantfarmod ahol tenyleg futna a program :)

    Köszönöm, összehoztam bár nem láncolt listával.
    Nemrég kérdeztem itt, hogy lehetne beolvasni egy ilyen formátumú(pamacs, 7, Vnev Knev) stringet úgy hogy mind a három adatot külön tárolja el, akkor írtál egy scanf-es megoldást, de azt nem fogadták el, mondván, hogy a név állhat simán 3 részből is, csináljam gets-el ezt mondták. Gondoltam feldarabolom, de valamiért nem akar működni, tudom alap dolog, de mégsem jó, az elsőt még kiírja, de a másodikat illetve a harmadikat már nem. Itt a main fv-m.
    int main(){
    printf("adatok: ");
    gets(mondat);
    i=0;
    do{
    elso[i]=mondat[i];
    i++;
    }while(mondat[i]!=',');

    i=i+2;
    do{
    masodik[i]=mondat[i];
    i++;
    }while(mondat[i]!=',');

    i=i+2;
    do{
    harmadik[i]=mondat[i];
    i++;
    }while(mondat[i]!='\0')


    printf("%s\n",elso);
    printf("%s\n",masodik);
    printf("%s\n",harmadik);
    system("pause");
    return 0;
    }

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