kleines Programm das nicht funktioniert
-
#include <stdio.h> int main () { int i; printf("Bitte geben sie den Verbrauch ein: \n"); scanf("%d", &i); printf("Das Ergebnis lautet: \n", i, i*0.1970+6.058); return 0; }
Ich habe das Programm geschrieben es soll einen Wert einlesen und diesen dann multiplizieren und etwas drauf addieren. Aber irgendwie geht das nicht er übersetzt das Programm ohne Fehler aber wenn man es ausführen will steht da nur Bitte geben sie den Verbrauch ein und Das Ergebnis lautet und nix weiter. Der liest gar keine Werte ein oder rechnet etwas.Oder kann ich die Dezimalzahlen nicht so angeben muss ich da etwas mit Float Werten machen? Bitte um Hilfe, das wäre super.
-
Da fehlt der Identifier von float oder double im String von printf (und auch der von int).
-
sorry ich versteh nicht ganz was muss ich noch einfügen??
-
int i; printf("gib ein:"); scanf("%d", &i); printf("ergebnis: %d, %f\n", i, i*2,5+0,6);
müsste so funktionieren
-
#include <stdio.h> int main () { int i; printf("Bitte geben sie den Verbrauch ein: \n"); scanf("%d", &i); printf("Das Ergebnis lautet: %d,%f\n", i, i*0.1970+6.058); return 0; }
Das geht leider nicht der liest keinen Wert ein. Also der Programmfluss soll ja so sein Aufforderung Bitte geben sie einen Wert ein, dann Enter und dann soll da stehen das Ergebnis lautet: und das errechnete ergebnis soll da stehen.
Wenn ich das Programm ausführe kommt erstmal keine Aufforderung bitte geben sie einen Wert ein. wenn ich dann einfach einen Wert eintippe kommt folgendes:216 (eingegebener Wert)
Bitte geben sie den Verbrauch ein:
Das Ergebnis lautet: 216, 4261.258000Warum ist das so? Danke für die Antworten schon mal.
-
Mach mal nach dem ersten printf() ein
fflush(stdout);
-
bitte wenn jemand antwortet wäre nett wenn ihr das so hinschreiben könntet wie ihr das meint also die pasage.
bin neu auf diesem gebiet und bei c ist es ja wichtig alles genau so zu schreiben wie vorgesehen.
also wie soll ich das schreiben im kontext?
-
Ein bisschen mitdenken darfst Du aber schon
Tim sagte: Mach mal nach dem ersten printf(). Nun, wir wissen (hoffentlich) dass ein Befehl immer mit ; abgeschlossen wird. Einfügen können wir gewiss auch. Daraus folgern wir:printf("Bitte geben sie den Verbrauch ein: \n"); fflush(stdout); scanf("%d", &i); printf("Das Ergebnis lautet: %d,%f\n", i, i*0.1970+6.058); /* oder */ printf("Bitte geben sie den Verbrauch ein: \n"); fflush(stdout); scanf("%d", &i); printf("Das Ergebnis lautet: %d,%f\n", i, i*0.1970+6.058); /* oder auch */ printf("Bitte geben sie den Verbrauch ein: \n"); fflush(stdout); scanf("%d", &i); printf("Das Ergebnis lautet: %d,%f\n", i, i*0.1970+6.058); /* oder gar */ printf("Bitte geben sie den Verbrauch ein: \n"); fflush ( stdout ) ;scanf("%d", &i); printf("Das Ergebnis lautet: %d,%f\n", i, i*0.1970+6.058);
Und nimm mich nicht zu ernst, rein von der Formatierung her wäre die Variante Nr. 3 (eins-basiert) wohl vorzuziehen
-
danke sehr nett es funktioniert!! was hat das denn genau zusagen das fflush(stdout)?
-
Irre ich mich, oder sollte das auch ohne fflush() gehen? Der Standard garantiert doch, afaik, dass bei abwechselnden Aufrufen von printf() und scanf() mit gleichen Filepointern alles gut geht, oder? Ich kann den Fehler auf meinen Systemen jedenfalls nicht reproduzieren...
@pcKnaller: was nimmst du denn zum Übersetzen?