Problem mit struct



  • Hallo liebe Community,
    ich = 1. Semester Informatik(noch ganz frisch)
    Ich habe leider noch einige Probleme beim programmieren und deswegen habe ich mich hier angemeldet in der Hoffnung das Ihr mir helfen könnt.

    #include <stdio.h>

    struct SBruch {

    int zaehler;
    int nenner;
    };

    void bruch_einlesen(struct Sbruch* bruch){

    printf("Bitte geben Sie den Zähler ein: ");
    scanf("%i", (&bruch.zaehler));
    printf("Bitte geben Sie den Nenner ein: ");
    scanf("%i", (&bruch.nenner));
    }

    void bruch_ausgeben(struct SBruch bruch){
    // Ausgabe
    printf("Der Bruch lautet %i/%i\n", bruch.zaehler, bruch.nenner );
    }
    int main() {
    struct SBruch anteil;
    anteil.zaehler = 1;
    anteil.nenner = 4;

    struct SBruch tortenstueck;
    tortenstueck.zaehler = 2;
    tortenstueck.nenner = 10;

    bruch_ausgeben(anteil);
    bruch_ausgeben(tortenstueck);

    return 0;
    }

    so sieht mein Programm aus immer wieder bekomme ich diese Fehlermeldung:
    sperson.c:10:31: Warnung: »struct Sbruch« innerhalb Parameterliste deklariert [standardmäßig aktiviert]
    sperson.c:10:31: Warnung: sein Gültigkeitsbereich umfasst nur diese Definition bzw. Deklaration, was Sie wahrscheinlich nicht wollten [standardmäßig aktiviert]
    sperson.c: In Funktion »bruch_einlesen«:
    sperson.c:13:26: Fehler: Anfrage nach Element »zaehler« in etwas, was keine Struktur oder Variante ist
    sperson.c:15:26: Fehler: Anfrage nach Element »nenner« in etwas, was keine Struktur oder Variante ist

    Das Problem ist an dieser Stelle und ich komme nicht weiter, hoffe ihr könnt mir weiter helfen.

    void bruch_einlesen(struct Sbruch* bruch){

    printf("Bitte geben Sie den Zähler ein: ");
    scanf("%i", (&bruch.zaehler));
    printf("Bitte geben Sie den Nenner ein: ");
    scanf("%i", (&bruch.nenner));
    }

    Eine Bitte hätte ich noch bevor ihr mir eine "richtige" Lösung zeigt probiert es doch bitte erst bei euch aus.

    Vielen Dank
    DJ Motherboard



  • C unterscheidet zwischen Groß- und Kleinschreibung.

    SBruch/Sbruch

    Bitte nicht zu hart auf der Tischplatte aufschlagen... 🙂



  • Ohhh man ja danke das stimmt aber ich bekomme immer noch die Fehlermeldung:

    sperson.c:16:26: Fehler: Anfrage nach Element »zaehler« in etwas, was keine Struktur oder Variante ist
    sperson.c:18:26: Fehler: Anfrage nach Element »nenner« in etwas, was keine Struktur oder Variante ist



  • DJ Motherboard schrieb:

    sperson.c:16:26: Fehler: Anfrage nach Element »zaehler« in etwas, was keine Struktur oder Variante ist
    sperson.c:18:26: Fehler: Anfrage nach Element »nenner« in etwas, was keine Struktur oder Variante ist

    #include <stdio.h>
    
    struct SBruch {
      int zaehler;
      int nenner;
    };
    
    void bruch_einlesen(struct SBruch* bruch){
      printf("Bitte geben Sie den Zähler ein: ");
      scanf("%i", (&bruch.zaehler));
      printf("Bitte geben Sie den Nenner ein: ");
      scanf("%i", (&bruch.nenner));
    }
    

    Na überleg mal: Du hast einen SBruch* , wie dereferenzierst Du einen solchen Zeiger?



  • Tut mir leid ich steh aufm Schlauch.



  • scanf("%i", &bruch->zaehler);
    

    *Edit
    bruch->zaehler ist das gleiche wie (*bruch).zaehler. Der Pointer wird zuerst dereferenziert und dann auf den Member zugegriffen.



  • Vielen Dank für die Antwort 👍


Anmelden zum Antworten