Brauche Hilfe
-
Ich hab erst angefangen mit dem dem C programmieren (vorher C++).
Wollte ein ganz einfaches Programm zur Dollar Euro umrechnung schreiben.
Leider funktioniert das nicht so wirklich.
Gibt ja auch kein schönes cout in C.#include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char *argv[]) { int a=0,b = 0; double dollar; double euro; printf("Dollar-Euro\n\n"); printf("Dollar zu Euro\t\t 1\n Euro zu Dollar\t\t 2\n Eingabe: "); scanf("%i",&a); while (b != 0) { b = b+1; printf("\n"); } if (a == 1) { printf("Eingabe Dollar: "); scanf("%f",dollar); printf("%f Dollar sind Euro",dollar,dollar*0.886556261); } return 0; }
Vielen Dank im voraus!!
-
scanf verlangt die Adresse einer Speicherstelle.
Dein printf ist ebenso Müll, da du 2 Argumente übergibst und nur 1 Format angibst.
-
Die Parameter bei
scanf
undprintf
müssen zu den Formatspecifier passen. Im Typ, der Reihenfolge und der Anzahl.Beim scanf fehlt das & und der Formatspecifier ist falsch.
%f ist für float, %lf für double. (das gilt aber nicht für printf)Beim nachfolgenden printf solltest du den Fehler selber sehen.
Das alles weiß auch der Compiler und gibt entsprechen Warnungen raus (wenn du ihn läßt)
Also stell deinen Warnlevel entsprechend ein und beachte die Warnungen.
-
Wie würde dann der korrekte Code lauten ?
-
Paul5 schrieb:
Wie würde dann der korrekte Code lauten ?
Welche Warnungen bekommst Du denn jetzt?
-
Paul5 schrieb:
Wie würde dann der korrekte Code lauten ?
Beim
scanf
an der richtigen Stelle das & einfügen. (Vergleich Zeile 12 mit 22)
Wenn die Variable ein double ist, muss der Formatspecifier %lf lauten (und nicht %f)
(Das ist ein kleines L dazwischen).Beim printf stehen die Formatspecifier an den Stellen, wo die Werte stehen sollen.
Wenn du zwei Werte ausgeben willst, brauchst du auch zwei Formatspecifier.Wo soll denn der zweite Wert stehen? Zwischen "sind" und "Euro"?
Dann musst du da noch ein %f (bei einer double-Variablen) einfügen.
-
?[/quote]Welche Warnungen bekommst Du denn jetzt?[/quote]
Leider keine es stürtz nach der Dollar eingabe einfach ab
-
Wenn ich
scanf("%lf",%dollar);
mache bekomme ich den Error das er etwas vor dem % erwartet
-
Ein & ist etwas anderes als ein %
Alles Dinge, die es auch in C++ gibt. Auch den Adresoperator.
Die Warnungen gibt dir auch der Compiler beim übersetzen.
-
Vielen Dank jetzt funktioniert es