Hirdetés

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

  • Karma
    félisten

    Sziasztok valaki tudna esetleg segíteni hogy ebben mi lehet a hiba mert nem tudok rájönni!!

    #include<stdio.h>

    typedef struct{
    char nev[51];
    double kapacitas;
    }Pendrive;

    void beolvas(Pendrive *adat)
    {
    printf("Adja meg a nevet: ");
    gets(adat->nev);
    printf("Adja meg a kapacitast: ");
    scanf("%f", adat->kapacitas);
    }

    void nagyobb(Pendrive tomb[])
    {
    int i;

    for(i = 0; i < (strlen(tomb)-1); i++)
    {
    if(tomb.kapacitas > 2)

    printf("%s",tomb(i).nev);
    printf("%i",tomb(i).kapacitas);
    }

    }

    int main(void)
    {
    Pendrive tomb[2];
    int i;

    for(i = 0; i < 2; i++)
    {

    beolvas(&tomb(i));
    }
    // nagyobb(tomb);
    return 0;
    }

    A hiba ott kezdődik, hogy nem használtad a Programkód gombot a forrás beszúrásakor, és így amellett, hogy nehezen olvasható, a [i]-kből mindenféle sima zárójel és dölt írás lett. Erre figyelj oda legközelebb.

    Maga a kód rengeteg sebből vérzik, jelölöm amit ránézésre látok:

    scanf("%f", &adat->kapacitas); -- mivel a double érték skalár, a scanf függvénynek a címét kell átadnod, ki kell rakni a & operátort hogy ne robbanjon.

    for(i = 0; i < (strlen(tomb)-1); i++) -- strlent nem szabad ilyen tömbre használni, csak és kizárólag nullterminált (azaz C) stringekre! A függvényedet úgy kéne módosítanod, hogy a darabszámot is átadd paraméterként.

    printf("%i",tomb[i].kapacitas); -- ha egyszer double az érték, miért egészként akarod kiíratni?

    De egyébként például a középsőt a fordító is mondja neked, hiszen lefordíthatatlan; miért nem nézed a hibákat?

    Egy kicsit lemaradtam az írással :)

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