Moin,
ich habe zum Üben ein Programm geschrieben, dass wie ein Fahrkartenautomat aufgebaut ist. Jetzt werden aber komischer weise meine else Bedingungen ausgeführt obwohl eine Bedingung eingetroffen ist. Wieso?
-> Wenn man zunächst 1 und dann 2 eingibt
Quellcode:
int main(int argc, char** argv) {
printf("Willkommen, welche Art Fahrkarte wird benötigt?\n");
printf("1. Einzelfahrkarte\n2. Mehrfachfahrkarte\n");
int auswahl1;
scanf("%d",&auswahl1);
int auswahl2;
if (auswahl1 == 1) { /Einmaltickets/
printf("\n\nEinzelfahkarten:\n\n");
printf("1. Ring\n2. Ringe\n3. Ringe\n");
scanf("%d",&auswahl2);
if(auswahl2 == 1){
printf("\nSie haben sich für einen Ring entschieden");
} if (auswahl2 == 2) {
printf("\nSie haben sich für zwei Ringe entschieden");
} if (auswahl2 == 3){
printf("\nSie haben sich für drei Ringe entschieden");
}else{
printf("\nUngültige Eingabe");
}
} if (auswahl1 == 2){ /Mehrfachticket/
printf("\n\nMehrfachfahrkarten:\n\n");
printf("1 Tagesticket\n3 Tagesticket\n7 Tageticket");
} else {
printf("Ungültige Eingabe");
}
return (EXIT_SUCCESS);
}