Hirdetés

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

  • Dead_slow

    tag

    Üdv!
    Ismét kérdéssel fordulnék a topik olvasóihoz, a feladat a következő lenne:
    Egy egyszerű teleknyilvántartó programot készítünk téglalap alakú telkek kezelésére. A program bekéri a telkek számát, majd bekéri és eltárolja a telkek helyrajzi számát, a tulaj nevét, telek hosszát és szélességét. Ezután a program kiírja azon telek vagy telkek adatait, amelyeknél a legnagyobb a hossz és a szélesség különbsége.
    Eddig jutottam, meghatározza a legnagyobb szélesség-hosszúságú és hosszúság-szélességű tel(ke)ket, csak nem tudom, hogy tudnám rávenni, hogy ahhoz/azokhoz az érték(ek)hez tartozozó mezőket írja ki.
    #include<stdio.h>
    #include<stdlib.h>

    struct telek{
    char nev[41];
    char hely[41];
    int hossz, szeles, kulonb;
    };
    struct telektar{
    int db;
    struct telek *telkek;
    };
    void lefoglal(struct telektar *ft){
    printf("Kerem a telkek szamat:");
    scanf("%d",&(*ft).db);
    (*ft).telkek=(struct telek*)malloc(sizeof(struct telek)*(*ft).db);
    }
    void beker_telek(struct telek *t){
    printf("Tulaj neve: \n");
    scanf("%s",(*t).nev);
    printf("Helyrajziszam: \n");
    scanf("%s",(*t).hely);
    printf("Hosszusag: \n");
    scanf("%d",&(*t).hossz);
    printf("Szelesseg: \n");
    scanf("%d",&(*t).szeles);
    }
    void beker_telektar(struct telektar *tt){
    int i;
    for(i=0;i<(*tt).db;i++){
    beker_telek(&(*tt).telkek[i]);
    }
    }
    void listaz(struct telektar *lt){
    int i,j,max;
    for(i=0;i<(*lt).db;i++){
    if((*lt).telkek[i].kulonb=(*lt).telkek[i].hossz-(*lt).telkek[i].szeles>0){
    (*lt).telkek[i].kulonb=(*lt).telkek[i].hossz-(*lt).telkek[i].szeles;
    printf("kulonbseg: %d\n",(*lt).telkek[i].kulonb);
    }

    else{
    (*lt).telkek[i].kulonb=(*lt).telkek[i].szeles-(*lt).telkek[i].hossz;
    printf("kulonbseg: %d\n",(*lt).telkek[i].kulonb);
    }
    }
    max=0;

    for(j=0;j<(*lt).db;j++){
    if(max<(*lt).telkek[j].kulonb){
    max=(*lt).telkek[j].kulonb;
    }
    }
    printf("legtorzabb telek: %d",max);
    }
    void felszabadit(struct telektar *ft){
    free((*ft).telkek);
    (*ft).telkek=NULL;
    }
    int main(){
    struct telektar b;
    lefoglal (&b);
    beker_telektar (&b);
    listaz (&b);
    felszabadit (&b);
    return 0;
    }

    [ Szerkesztve ]

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