Kreisberechnungsprogramm



  • CStoll schrieb:

    Kein Wunder, wenn du Müll ausgeben lässt - bei den printf()-Aufrufen sind die Adress-Operatoren (&r etc) zu viel.

    PS: "läuft nicht richtig" ist eine sehr präzise Fehlermeldung 😃

    Ohne kommt aber immer ein Fehler 🙂

    Normalerweise setzt man die Semikolons auch ans Zeilen-Ende (hinter den Befehl, zu dem sie gehören)

    Die Adress-Operatoren hab ich gelöscht.
    Aber als Ergebnis bekomm ich immer noch 0.000000 raus.



  • Die Antworter und Moderatoren hier im Forum sind alle sehr geduldig und geben gerne Hilfe. Klar könnte diese sehr simple Aufgabe dir fertig geliefert werden, doch wozu? 😕


  • Mod

    CStoll schrieb:

    Normalerweise setzt man die Semikolons auch ans Zeilen-Ende (hinter den Befehl, zu dem sie gehören)

    Das war wohl eine sehr wörtliche Auslegung der üblichen Compilermeldung "Expected ';' before xxx". 😃



  • SeppJ schrieb:

    CStoll schrieb:

    Normalerweise setzt man die Semikolons auch ans Zeilen-Ende (hinter den Befehl, zu dem sie gehören)

    Das war wohl eine sehr wörtliche Auslegung der üblichen Compilermeldung "Expected ';' before xxx". 😃

    Was macht ihr den in diesem fall? 🙂



  • berniebutt schrieb:

    Die Antworter und Moderatoren hier im Forum sind alle sehr geduldig und geben gerne Hilfe. Klar könnte diese sehr simple Aufgabe dir fertig geliefert werden, doch wozu? 😕

    Aber ich find den Fehler trotzdem nicht.



  • Einen Hinweis, wie so ein Programm aussehen kann hast du schon bekommen.

    Zeig mal wie dein Programm jetzt aussieht.

    NewC++ schrieb:

    Was macht ihr den in diesem fall?

    Den Syntax der Sprache lernen und nicht raten.



  • DirkB schrieb:

    Den Syntax der Sprache lernen und nicht raten.

    selfowned. 🤡



  • Ok das Programm funktioniert jetzt.
    Hier der fertige Code:

    #include<math.h>
    #include<stdio.h>
    #include<stdlib.h>
    #include<conio.h>
    
    int main()
    {
        float r,u,a;
        printf("\n\t\t Kreisberechnung");
        printf("\n\n\n Gib den Radius ein:");
        scanf("%f",&r);
    
        u=2*r*3.14;
        a=r*r*3.14;
    
        printf("\n\n\n")
        ;printf("radius=%8f",r);
        ;printf("\n===============");
        ;printf("\n Umfang=%8f",u);
        ;printf("\n Flaeche=%8f",a);
    
        ;system("pause");
        return (1);
    }
    

    Der Fehler lag beim "Double" das hab ich durch "float" ersetzt.
    Aber die Semikolons am Anfang bekomm ich nicht weg.



  • NewC++ schrieb:

    Der Fehler lag beim "Double" das hab ich durch "float" ersetzt.

    Nein lag es nicht.Du hast beim scanf das "%f" nicht in "%lf" geändert.
    %f für float. %lf für double.
    ⚠ das gilt bei scanf, nicht für printf.

    NewC++ schrieb:

    Aber die Semikolons am Anfang bekomm ich nicht weg.

    Dann versuch doch mal die Semikolons schrittweise zu entfernen und schau dann nach, was an den Zeilen anders ist, wenn es nicht mehr funktioniert (auch die Zeilen davor).


  • Mod

    NewC++ schrieb:

    Der Fehler lag beim "Double" das hab ich durch "float" ersetzt.

    Das heißt ja auch double. C achtet auf groß und Kleinschreibung.

    Aber die Semikolons am Anfang bekomm ich nicht weg.

    Das kommt davon, wenn man sich die Sprache von Compilerfehlermeldungen beibringen lässt. Damit wirst du sehr bald ganz ordentlich auf die Schnauze fallen, denn der Compiler schlägt immer nur die einfachste Korrekturmethode vor, die an dieser Stelle gerade passt, ganz egal ob es Sinn macht oder ob später dadurch noch schlimmere Fehler kommen.



  • Danke für den Tipp.
    In Zeile 18 fehlte das Semikolon.
    Was ist eigentlich der unterschied zwischen float und double?


  • Mod

    NewC++ schrieb:

    Danke für den Tipp.
    In Zeile 18 fehlte das Semikolon.
    Was ist eigentlich der unterschied zwischen float und double?

    Die Anzahl (nicht der Bereich!) darstellbarer Werte für double ist mindestens genau so groß wie die von float. Meistens ist sie gut vier Milliarden mal größer.



  • NewC++ schrieb:

    Danke für den Tipp.
    Was ist eigentlich der unterschied zwischen float und double?

    im detail:
    f != d
    l != 0
    o != u
    a != b
    t != l
    macht in der summe 100% unterschied, wobei das e von double nicht vergleichbar ist.
    *SCNR*
    🙂


Anmelden zum Antworten