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".


Anmelden zum Antworten