1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Fehler beim Compilen

  • Smartie
  • 8. Juni 2008 um 17:55
  • Unerledigt
  • Smartie
    3
    Smartie
    Mitglied
    Punkte
    70
    Beiträge
    10
    • 8. Juni 2008 um 17:55
    • #1

    Hi Leute.

    Ich habe ein Programm geschrieben und wollte es eben compilen.
    Nun bekomme ich beim compilen eine Fehlermeldung und sehe nicht, wo der Hund begraben liegt: "14 printf argument mismatch for format d. Expected int got double"

    Mein Programm bis dahin schaut folgerndermaßen aus:

    Code
    #include <math.h>
    #define M_PI 3.14159265358979323846
    float cos(double);
    float sin(double);
    
    
    int main ()
    {
        double i,laenge,winkel;
        float stabeins, gesamtlaenge, faktor, gln;
    
    
        printf ("Geben sie bitte die Schenkellaenge ein\n");
        scanf ("%d" ,&laenge);
        printf ("Schenkellaenge:%d\n", laenge);
    Alles anzeigen


    Sieht von euch vielleicht jemand, wo der Hund begraben liegt?

    MfG Smartie

  • lerod
    13
    lerod
    Mitglied
    Reaktionen
    5
    Punkte
    1.620
    Beiträge
    315
    • 8. Juni 2008 um 18:16
    • #2

    Er sagts ja schon, was das Problem ist. %d wird für ganzzahlige Datentypen wie int verwendet. Zum Einlesen von Gleitkommazahlen gibt es %f (float) bzw. %lf(?) für (double). Detto für die Ausgabe. Ich würde mir die Formatparameter mal zu Gemüte führen.

    LG

  • Smartie
    3
    Smartie
    Mitglied
    Punkte
    70
    Beiträge
    10
    • 8. Juni 2008 um 18:21
    • #3

    Hallo Ierod.
    Also erstmal danke für die schnelle Antwort.
    Trotzdem verstehe ich das noch nicht ganz. Ich habe die Varialble "laenge" ja als ganzzahlige Zahl in Zeile 9 mit double deklariert, und der Eingabewert soll auch nicht als Gleitkommazahl erfolgen.
    Eigentlich dürfte er mir doch keinen Fehler bringen...?

  • lerod
    13
    lerod
    Mitglied
    Reaktionen
    5
    Punkte
    1.620
    Beiträge
    315
    • 8. Juni 2008 um 18:24
    • #4

    Seit wann ist double keine Gleitkommazahl?

  • Smartie
    3
    Smartie
    Mitglied
    Punkte
    70
    Beiträge
    10
    • 8. Juni 2008 um 18:25
    • #5

    Ah ich Held, jetzt weiß ich was du meinst. Habe den Fehler gefunden, und bedanke mich nochmals für die rasche Hilfe.
    Einen schönen Sonntag noch
    VG Smartie

  • lerod
    13
    lerod
    Mitglied
    Reaktionen
    5
    Punkte
    1.620
    Beiträge
    315
    • 8. Juni 2008 um 18:29
    • #6

    Keine Ursache :winking_face:
    Ebenfalls einen schönen Sonntag noch.

    LG

  • Plantschkuh!
    24
    Plantschkuh!
    Mitglied
    Reaktionen
    163
    Punkte
    6.173
    Beiträge
    1.181
    • 8. Juni 2008 um 23:15
    • #7
    Zitat von lerod

    Zum Einlesen von Gleitkommazahlen gibt es %f (float) bzw. %lf(?) für (double). Detto für die Ausgabe.


    Die Ein- und Ausgabe unterscheiden sich hier. Bei scanf steht %f für float und %lf für double. Bei printf nimmt man %f für beides, und %lf gibts laut Standard nicht (einzelne Implementierungen mögen es akzeptieren). Das hat damit zu tun, daß floats in bestimmten Kontexten immer in doubles konvertiert werden.

    *plantsch*

  • Maximilian Rupp 27. Dezember 2024 um 12:04

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung