Von Dezimal nach Gleitkommazahl (Probleme aufgetreten)
-
Und zwar wenn ich bei dem Programm *4* eingebe und *Enter* drücke komme ich zwar zur Division (Case 4) aber nachdem ich die 2 Zahlen eingegeben habe, stürzt mein Rechner ab...
Was hab ich falsch gemacht ??? Vielen Dank schonmal für die Hilfe.//edit: klar ist mir schon, das wenn ich %lf und %f duch %d ersetze, das das dann funzt. Ich möchte aber auch Kommazahlen als Ergebnis haben und wenn es geht auch eingeben können...
Mfg: MaXxer16
#include <stdio.h> #include <conio.h> int main() { int a, b, gleich, zahl; printf ("Welche Rechenart bevorzugen sie ?\n\n1=Addition\n2=Subtraktion\n3=Multiplikation\n4=Division(mit 2 Nachkommastellen)\nEingabe: "); scanf ("%d",&zahl); switch (zahl) { case 1: printf ("\nAddition\n\n"); printf ("Bitte die 2 Zahlen zur Addition eingeben\n"); printf ("Zahl 1: "); fflush(stdin); scanf ("%d", &a); printf ("Zahl 2: "); scanf ("%d", &b); gleich = a+b; printf ("\n\nErgebnis: %d + %d = %d", a, b, gleich); break; case 2: printf ("\nSubtraktion\n\n"); printf ("Bitte die 2 Zahlen zur Subtraktion eingeben\n"); printf ("Zahl 1: "); fflush(stdin); scanf ("%d", &a); printf ("Zahl 2: "); scanf ("%d", &b); gleich = a-b; printf ("\n\nErgebnis: %d + %d = %d", a, b, gleich); break; case 3: printf ("\nMultiplikation\n\n"); printf ("Bitte die 2 Zahlen zur Multiplikation eingeben\n"); printf ("Zahl 1: "); fflush(stdin); scanf ("%d", &a); printf ("Zahl 2: "); scanf ("%d", &b); gleich = a*b; printf ("\n\nErgebnis: %d * %d = %d", a, b, gleich); break; case 4: printf ("\nDivision\n\n"); printf ("Bitte die 2 Zahlen zur Division eingeben\n"); printf ("Zahl 1: "); fflush(stdin); scanf ("%lf", &a); printf ("Zahl 2: "); scanf ("%lf", &b); gleich = a/b; printf ("\n\nErgebnis: %f : %f = %f", a, b, gleich); break; default: printf ("\n\n\nError:\nSie haben die Zahl %d eingegeben.\nDiese Zahl entspricht nicht den Vorgaben.\nStarten die das Programm nun bitte erneut.", zahl); } printf ("\n\n\n\n\n\n\n\n\n\nBitte nun eine beliebige Zahl zum beenden drücken //Copyright 2006 by MaXxer16"); getch(); return 0; }
-
MaXxer16 schrieb:
//edit: klar ist mir schon, das wenn ich %lf und %f duch %d ersetze, das das dann funzt. Ich möchte aber auch Kommazahlen als Ergebnis haben und wenn es geht auch eingeben können...
Dann solltest du die Variablen a und b auch vom Typ float oder double deklarieren.
Btw: Deine Frage hast du im falschen Forum gestellt ;). (Gehört nach ANSI C).
Gruß Caipi
-
Und nächstens im richtigen Forum posten (Stichwort Ansi-C).
-
THX 4 Help oh man ich dusi...
Ich hab mich gerad durch nen paar Tuts gearbeitet und wollte einen Taschenrechner programmieren (und dies hier war mein 1. Post
)Mfg: MaXxer16