Problem beim Waehrungsrechner
-
Moin,
ich bin noch ein Anfänger, was C angeht und hab mir ein Programm geschrieben, das Euro in ein paar Fremdwaehrungen und eine Fremdwaehrung in Euro umrechnen kann./* Waehrungsrechner */ #include <stdio.h> #include <ctype.h> main () { int richtung; char eingabe1,eingabe2; float betrag; printf("\nBitte Umrechnungsrichtung auswählen :\n"); printf("(1)Euro in Fremdwaehrung\n(2) Fremdwaehrung in Euro\n"); scanf("%i",&richtung); if(richtung==1) { printf("\nBitte Waehrung auswaehlen:\n"); printf("(D)ollar\n(P)fund Sterling\n(Y)en\n(R)enminbi :\n\n"); eingabe1=getchar(); printf("\nBetrag in Euro eingeben:"); scanf("%f",&betrag); switch(toupper(eingabe1)) { case'D': printf("\n%.2f Euro entsprechen %.2f Dollar\n\a", betrag, betrag*1.2799); break; case'P': printf("\n%.2f Euro entsprechen %.2f Pfund Sterling\n\a", betrag, betrag*0.82); break; case'Y': printf("\n%.2f Euro entsprechen %.2f Yen\n\a", betrag, betrag*109.78); break; case'R': printf("\n%.2f Euro entsprechen %.2f Renminbi\n\a", betrag, betrag*8.698); break; } } if(richtung==2) { printf("\n\nBitte Fremdwährung auswaehlen :"); printf("\n(J)in Dollar\n(K)in Pfund Sterling"); printf("\n(L)in Yen\n(M)in Renminbi"); eingabe2=getchar(); switch(toupper(eingabe2)) { case 'J': printf("\nBitte Betrag in Dollar eingeben :"); scanf("%f",&betrag); printf("\n%.2f Dollar entsprechen %.2f Euro", betrag, betrag*0.78131); break; case 'K': printf("\nBitte Betrag in Pfund Sterling eingeben :"); scanf("%f",&betrag); printf("\n%.2f Pfund Sterling entsprechen %.2f Euro", betrag, betrag*1.2177 ); break; case 'L': printf("\nBitte Betrag in Yen eingeben :"); scanf("%f",&betrag); printf("\n%.2f Yen entsprechen %.2f Euro", betrag, betrag*0.0091091 ); break; case 'M': printf("\nBitte Betrag in Renminbi eingeben :"); scanf("%f",&betrag); printf("\n%.2f Renminbi entsprechen %.2f Euro", betrag, betrag*0.114972 ); break; } } }
Leider arbeitet es nicht korrekt:
Wähle ich beispielweise "Euro in Fremdwaehrung" aus, so erscheint zwar die Fremdwaehrungsauswahl, allerdings wird das getchar() nicht beachtet und sofort der printf-Befehl "Betrag in Euro eingeben :" ausgeführt.Schönen Dank schonmal!
-
Also irgendwie scheint hier irgendwo ein Nest zu sein. Dasgleiche Problem mehrfach in den letzten Tagen. Vielleicht sollte man doch mal die FAQ auffrischen.
Du kannst z.B. schauen unter http://www.c-plusplus.net/forum/viewtopic-var-t-is-272321.html oder du suchst woanders zum Thema getchar/scanf("%c")/fflush(stdin)
-
Ah danke, jetzt funktionierts^^
-
Schön, dass es läuft.
Um das Ganze noch ein bisschen 'richtiger' zu machen, solltest du bitte "int main()" notieren, um standardkonform zu bleiben, nicht nur "main".