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

  • Dead_slow

    tag

    Üdv!
    Újra segítséget kérek a topik "lakóitól" itt a feladat: Egy elefánt menhelyre nyilvántartó programot készítünk. A program először bekéri a menhelyen megfordult elefántok számát, majd ezután bekéri és eltárolja az elefántok nevét, a menhelyre érkezés évét, valamint a menhelyről távozás évét(lásd a példát).
    Eztán a program kilistázza évenkénti bontásban az adott évben a menhelyen tartózkodott elefántok nevét. A listázás a legkorábban érkezett elefánt érkezési évétől a legkésőbb távozott elefánt távozási évéig tart.

    Pl.:
    Elefántok száma: 4
    1. Neve: Trombi
    Erkezes: 1998
    Tavozas: 2001
    2. Neve: Frédi
    Erkezes: 1999
    Tavozas: 2000
    3. Neve: Olga
    Erkezes: 1998
    Tavozas: 1999
    4. Neve: Helga
    Erkezes: 2004
    Tavozas: 2005

    Kimenet:
    1998: Trombi, Olga
    1999: Trombi, Frédi, Olga
    2000: Trombi, Frédi
    2001: Trombi
    2002:
    2003:
    2004: Helga
    2005: Helga

    Jelenleg itt tartok, persze nem biztos hogy így jó lesz:
    #include<stdio.h>

    struct elefant{
    char nev[41];
    int erkezes;
    int tavozas;
    };

    struct elefanttar{
    int db;
    struct elefant *elefantok;
    };

    void lefoglal(struct elefanttar *pfe){
    printf("kerem az elefantok szamat: ");
    scanf("%d",&(*pfe).db);
    (*pfe).elefantok=(struct elefant*)malloc(sizeof(struct elefant)*(*pfe).db);
    }

    void beker_elefant(struct elefant *pe){
    printf("Neve: ");
    scanf("%s",(*pe).nev);
    printf("Erkezes: ");
    scanf("%d",&(*pe).erkezes);
    printf("Tavozas: ");
    scanf("%d",&(*pe).tavozas);

    }

    void beker_elefanttar(struct elefanttar *pet){
    int i;
    for(i=0;i<(*pet).db;i++){
    beker_elefant(&(*pet).elefantok[i]);
    }
    }

    void listaz(struct elefanttar *let){
    char c[41];
    int sorba[200];
    int max=0;
    int min=10000;
    int i,j,k;

    for(i=0;i<(*let).db;i++){
    if(max<(*let).elefantok[i].erkezes){
    max=(*let).elefantok[i].erkezes;
    }
    }
    for(j=0;j<(*let).db;j++){
    if(min>(*let).elefantok[j].erkezes){
    min=(*let).elefantok[j].erkezes;
    }
    }
    }
    void felszabadit(struct elefanttar *pfe){
    free((*pfe).elefantok);
    (*pfe).elefantok=NULL;
    }

    int main(){
    struct elefanttar b;
    lefoglal(&b);
    beker_elefanttar(&b);
    listaz(&b);
    felszabadit(&b);
    return 0;
    }

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

Hirdetés