If Problem
-
Hey,
ich hoffe ich nerve nicht langsamWieder ein Problem:
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { printf("Bitte Passwort angeben!\n"); int PW; scanf("%d",&PW); if(PW==7378||7275||1763||4728||3904||2893||3629||8936||3245||2444||4938||9923||5352) {...} else {printf("Falsches PW! :P"); system("pause");}}
Ich weiss das das keineswegs ein richtiger Schutz ist bla bla, aber meine Frage ist, wieso ignoriert er den else Abschnitt ? ich starte das Programm, gebe ein falsches Passwort an und er macht trotzdem weiter?
-
Das == wird vom || nicht durchgereicht. (a == b || c) heißt nicht "wenn a gleich b oder gleich c ist" sondern "wenn a gleich b ist oder wenn c ist". Da deine ganzen Zahlen unzweifellos ungleich 0 sind, ist deine Bedingung daher immer wahr.
-
Und wie ändere ich das jetzt ?
-
if (pw == 5 || pw == 4 || pw == 3)
-
Arbeite an deiner Einrückung! Die ist grauenhaft, sorry.
Beispiele z.B. auf Wikipedia, und wahrscheinlich auf 1000 weiteren Seiten.