double ausgaben sehen merkwürdig aus
-
Hallo hier funktioniert etwas nicht so richtig
Ich benutze
Win 10
Code Blocks
will in C programmieren
bin eher Java programmiererDa sist der Code
# include <stdio.h> # include <stdlib.h> int main() { int summand1; int summand2; int summe; int div; int multi; int subr; double Wert1; double Wert2; double Wert3; double Wert4; printf(" Geben Sie einen Wert für den ersten Wert ein \n"); scanf("%d", &summand1); printf(" Geben Sie einen zweitne Wert ein \n"); scanf("%d", &summand2); printf("Ihre beiden Zahlen lauten %d %d ", summand1, summand2); printf("\n"); printf(" Geben Sie einen Wert für den ersten double Wert ein \n "); scanf("%.3f",&Wert1); printf(" Geben Sie einen Wert für den zweiten double Wert ein \n "); scanf("%.3f",&Wert2); printf(" Geben Sie einen Wert für den drittnen double Wert ein \n "); scanf("%.3f",&Wert3); printf(" Ihre Werte lauten:%.3f %.3f %.3f ", Wert1, Wert2, Wert3); printf("\n"); summe = summand1 + summand2; div = summand1 / summand2; multi = summand1 - summand2; subr = summand1 * summand2; printf(" Ihre Summe lautet: %d \n", summe); printf(" Ihre Division lautet: %d\n", div); printf(" Ihre multi lautet: %d\n", multi); printf(" Ihre Subraktion lautet: %d\n", subr); }
und das die Ausgabe
Geben Sie einen Wert f³r den ersten Wert ein
12
Geben Sie einen zweitne Wert ein
23
Ihre beiden Zahlen lauten 12 23
Geben Sie einen Wert f³r den ersten double Wert ein
2.12
Geben Sie einen Wert f³r den zweiten double Wert ein
Geben Sie einen Wert f³r den drittnen double Wert ein
Ihre Werte lauten:0.000 2682595152729302700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000 -0.000
Ihre Summe lautet: 35
Ihre Division lautet: 0
Ihre multi lautet: -11
Ihre Subraktion lautet: 276Process returned 0 (0x0) execution time : 9.844 s
Press any key to continue.Wo liegt dne da der Fehler genau??
Bei den Integer werten klappt es
-
scanf unterstützt keine formatspezifizierer für die präzision. wenn ich sie raus nehme, gehts. zumindest dann, wenn ich den zeilenumbruch auch noch aus dem eingabepuffer entferne oder irgendwelche anderen "tricks" anwende.
-
ok danke also muss ich bei dem befehl Scanf nicht angeben ob ich ein double oder int oder eine andere Formatangabe habe?
-
Doubles liest man nicht mit %f ein, sondern mit %lf. Bekommst du keine Warnung dafür?
Die Format-Strings für scanf und printf sind nicht identisch!
Edit:
willst du es unverständlich haben? Nein? Dann schau dir diese beiden Zeilen nochmal an. Könnten falsch sein:multi = summand1 - summand2; subr = summand1 * summand2;
-
Und es heißt "Subtraktion".