währungsumrechnung



  • hallo Leute,

    ich soll ein Programm schreiben welches Euro und Dollar und umgekehrt umrechnen kann. Der Benutzer soll wählen können ob in Euro oder Dollar umgerechnet werden soll (mit dem Wechselkurs 1€=1,375$). Ich habe mir folgendes überlegt nur haut das leider nicht hin. Könnt ihr mir sagen wo mein Fehler ist? Danke im voraus! 😉

    #include <stdio.h>
    #include <stdlib.h>

    int main()
    {
    char waehrung;
    float anfangswert;
    float endwert;

    printf("Umrechnung EUR <--> USD\n");
    printf("________________________\n\n\n");

    printf("Soll in Euro (e) oder in US-Dollar (d) umgerechnet werden?:\n");

    scanf("%s", &waehrung);

    while (waehrung !== 'e'|| 'd' )
    {
    printf("Ungueltige Eingabe! Bitte geben sie e für Euro oder d für US-Dollar ein:\n");

    fflush(stdin);

    scanf("%c", &waehrung);
    }

    printf("Geben Sie den Betrag ein:\n");
    scanf("%.2f", &anfangswert);

    if (waehrung=='d')

    {
    endwert= anfangswert * 1,375;

    printf("ES sind umgerechnet %.2f US-Dollar\n", endwert);

    }

    if (waehrung=='c')

    { endwert= anfangswert/1,375;

    printf("Es sind umgerechnet %.2f Euro\n", endwert);

    }

    return 0;
    }



  • Hi

    while (waehrung !== 'e'|| 'd' )
    

    Funktioniert so nicht ( 'e' || 'd' ist immer wahr ), du musst es so z.B. so schreiben:

    waehrung !== 'e' && waehrung !== 'd'
    


  • CJosef schrieb:

    Hi

    while (waehrung !== 'e'|| 'd' )
    

    Funktioniert so nicht ( 'e' || 'd' ist immer wahr ), du musst es so z.B. so schreiben:

    waehrung != 'e' && waehrung != 'd'
    

    P.S.
    Aus !== mach !=



  • CJosef schrieb:

    waehrung !== 'e' && waehrung !== 'd'
    

    Eher:

    waehrung != 'e' && waehrung != 'd'
    

    😉



  • danke für den Tipp 🙂 wurde geändert.

    funktioniert leider immer noch nicht der bringt mir beim "Stack around the variable 'waehrung' was corrupted." 😞 😕



  • Kein Wunder.
    waehrung kann ein einzelnes Zeichen aufnehmen. Du liest es aber mit %s ein. Das ist für Strings gedacht! Nach der Eingabe wird dort noch ein '\0' angefügt. Das ist in Speicher, der dir nicht gehört.
    Ändere den Formatspezifierer und gut ist.



  • Und aus 1,375 mach 1.375.


Log in to reply