Dialog in C / viele Entscheidungen nacheinander
Verfasst: Fr Mai 11, 2018 9:01 pm
Hallo
,
Ich muss ein C-Programm schreiben, das nacheinander ja/nein Entscheidungen des Benutzers verlangt um herauszufinden, welches Raumschiff aus Star Wars/Star Treck gemeint ist. Es sind also viele ineinander verschachtelte Fragen. Ich habe versucht dies mit vielen if anweisungen zu realisieren, allerdings wird ab der 3. Eingabe einfach die nächste if-Anweisung ausgespuckt, auch wenn diese übersprungen werden müsste..
Wie kann man das realisieren? Gibt es eine Alternative zu so vielen if -Anweisungen? Und warum funktioniert es nicht? 

Ich muss ein C-Programm schreiben, das nacheinander ja/nein Entscheidungen des Benutzers verlangt um herauszufinden, welches Raumschiff aus Star Wars/Star Treck gemeint ist. Es sind also viele ineinander verschachtelte Fragen. Ich habe versucht dies mit vielen if anweisungen zu realisieren, allerdings wird ab der 3. Eingabe einfach die nächste if-Anweisung ausgespuckt, auch wenn diese übersprungen werden müsste..
Code: Alles auswählen
#include<stdio.h>
int main(void)
{
int a,b,c,d,e,f,g;
printf("Ich bin ein Raumschiff. \n Aus welchem Universum stamme ich? (0: Star Trek, 1: Star Wars) : ");
scanf("%d", &a);
if(a==0){
printf("Gehoere ich zu Star fleet?(0:ja , 1: nein) : ");
scanf("%d",&b);
}else {
if(a==1){
printf("Zu wem gehoere ich?(0: Imperium, 1: Rebellen) : ");
scanf("%d", &d);
}
}
if(b==0){
printf("Bin ich im Delta Quadrant? (0:ja, 1:nein) : ");
scanf("%d", &c);
}else{
if(b==1){
printf("Bin ich klingonisch? (0: ja, 1: nein) :");
scanf("%d",&g);
}
}
if(c==0){
printf("Ich bin die USS Voyager.");
}else{
if(c==1){
printf("Ich bin die USS Enterprise.");
}
}
if(g==0){
printf("Ich bin ein Bird-of-Prey.");
}else{
if(g==1){
printf("Ich bin ein Borg Cube.");
}
}
if(d==0){
printf("Bin ich rund? (0:ja, 1: nein) : ");
scanf("%d",&e);
}else{
if(d==1){
printf("Habe ich einen Pilotensitz? (0: ja, 1: nein) :");
scanf("%d", &f);
}
}
if(e==0){
printf("Ich bin der Death Star.");
}else{
if(e==1){
printf("Ich bin ein Tie Fighter.");
}
}
if(f==0){
printf("Ich bin ein X-Wing.");
}else{
if(f==1){
printf("Ich bin der Millenium Falcon.");
}
}
return 0;
}
