Fehler beim Compilen

  • 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:


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

    MfG Smartie

  • 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

  • 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...?

  • 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

  • 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*

Jetzt mitmachen!

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