Finde den Fehler im Quellcode nicht!!!!



  • Hallo,

    ich habe vor kurzem angefangen mich mit C zu beschäftigen. Dazu lese ich ein Buch, dass sich "C als erste Programmiersprache" nennt.

    In diesem Buch sind auch einige Übungsaufgaben enthalten. Bis jetzt hat es ganz gut geklappt, aber jetzt hänge ich bei einem Problem dass folgendermaßen aussieht:

    Die Aufgabe des Programmes ist es die Fläche eines Kreises zu brechnen, was in Form einer Tabelle ausgegeben werden soll. Auf der linken Seite wird der Radius ausgegeben und auf der rechten Seite die Fläche. Der erste Quellcode ist mein selbst geschriebener und der zweite ist die Lösung aus dem Buch...ich verstehe nur nicht, worin der Unterschied der beiden Codes ist!!!! Weil der Code aus dem Buch ja einwandfrei funktioniert!!!

    #include <stdio.h>
    #define PI 3,1415f
    
    int main (void)
    {
        printf ("Radius\t Flaeche\n\n");
    
        int ra;
        double fl;
        for (ra = 1; ra <= 10; ra = ra + 1)
        {
            fl = PI * ra * ra;
            printf ("%2d\t %3.2f\n", ra, fl);
        }
        return 0;
    }
    
    /* Datei kreisflaeche.c */
    #include <stdio.h>
    #define PI 3.1415f
    
    int main (void)
    {
       int radius;
       double flaeche;
       for (radius = 1; radius <= 10; radius = radius + 1)
       {
          flaeche = PI * radius * radius;
          printf ("%3d     %6.2f\n", radius, flaeche);
       }
       return 0;
    }
    

    PS: Das "f" an der Variable PI hab ich mir von dem Code aus dem Buch abgeschaut...kann mir vielleicht noch einer sagen was "f" zu bedeuten hat?

    Schonmal danke für eure Hilfe 😃

    Gruß Flo



  • Schau dir mal den Unterschied zwischen deiner Definition von PI und der aus dem Buch an.



  • f bedeutet, dass die Variable den Typ float hat.

    EDIT: Übrigens hast du eine Fehlerbeschreibung vergessen, nur so für's nächste Mal...



  • _matze schrieb:

    f bedeutet, dass die Variable den Typ float hat.

    ... die Konstante ...



  • devkid schrieb:

    Schau dir mal den Unterschied zwischen deiner Definition von PI und der aus dem Buch an.

    Flomaster schrieb:

    #define PI 3,1415f

    LOL!! 😮

    ==>
    fl = PI * ra * ra;

    ==>

    fl = 3 , 1415f * ra * ra;

    ( 🕶 )



  • gcc:

    main.c:19:14: invalid suffix "f" on integer constant
    

    🙄



  • bgdnoy schrieb:

    gcc:

    main.c:19:14: invalid suffix "f" on integer constant
    

    🙄

    Das f ist ja auch für Fließkommazahlen gedacht; also 1.0f , nicht 1f .

    http://www.imb-jena.de/~gmueller/kurse/c_c++/c623.html schrieb:

    Die Kennzeichnung der Typvariante durch einen Suffix kann sowohl durch Groß- als auch Kleinbuchstaben erfolgen, d.h. für float können F oder f und für long double können L oder l angegeben werden.
    Literale ohne Suffix sind stets vom Typ double.



  • klartext: das muss ein punkt sein, kein komma, in deinem PI



  • http://www.imb-jena.de/~gmueller/kurse/c_c++/c623.html schrieb:

    Die Kennzeichnung der Typvariante durch einen Suffix kann sowohl durch Groß- als auch Kleinbuchstaben erfolgen, d.h. für float können F oder f und für long double können L oder l angegeben werden.
    Literale ohne Suffix sind stets vom Typ double.

    Na wenn das der G. Müller sagt!
    Falls sich der jemals geirrt hätte -- ich hätte es bestimmt in der Zeitung gelesen.
    🙂

    Versuch's mal im Standard. Floats sind in C99 unter 6.4.4.2.



  • 🤡

    Oh man....peinlich!!!!

    Das nur ein Komma so ein schaden anrichten kann!!!! 🙄

    Also, vielen Dank für eure Antworten!!!! 👍

    Lg Flo



  • Flomaster schrieb:

    !!!! !!!! !!!!

    Schrei doch nicht so. 😉 Man versteht dich auch, wenn du deine Sätze mit einem Satzende-Zeichen beendest...



  • Flomaster schrieb:

    Das nur ein Komma so ein schaden anrichten kann!!!! 🙄

    Wegen verwechselten Kommas und Punkten sind schon Weltraummissionen gescheitert.



  • Bashar schrieb:

    Wegen verwechselten Kommas und Punkten sind schon Weltraummissionen gescheitert.

    auch wegen verwechselter semikolons mit doppelpunkten.



  • volkard schrieb:

    Bashar schrieb:

    Wegen verwechselten Kommas und Punkten sind schon Weltraummissionen gescheitert.

    auch wegen verwechselter semikolons mit doppelpunkten.

    und statt == ein = kommt auch immer gut.
    🙂



  • gaehn schrieb:

    klartext: das muss ein punkt sein, kein komma, in deinem PI

    Spielverderber! 😞

    ( 🕶 )



  • @ Javaner

    Das hätte ich auch so rausbekommen. 🙂

    Aber du hast recht...wenn eine Frage zu einem Problem gestellt wird, sollte man demjenigen nur Hinweise liefern, anstatt ihm die exakte Antwort unter die Nase zu reiben.

    Es macht ja auch mehr spaß das Problem selbst zu lösen! 😃


Anmelden zum Antworten