Warum funktioniert diese Logische Anweisung nicht?

Ich bin dabei ein kleines Programm zu schreiben, aber warum funktioniert diese Anweisung nicht, bzw was muss ich ändern, damit es funktioniert?

(Es soll ein char Wert eingelesen werden (z) und eine Fehlermeldung machen, wenn weder +, -, *, /, noch E in Groß und Kleinschreibung auf z gespeichert wurde.)

while(z != (’+’||’-’||’*’||’/’||‚e‘||‚E‘))

Ich hoffe ihr könnt mir da schnell helfen.

Lg Flo

Ach ja, der Fehler ist, dass er in die Schleife springt, auch wenn eines dieser Zeichen eingelesen wurde.

Hallo Flo,

schaue Dir in Deinem C-Buch „||“ an (ergebniss ist immer 0 oder 1, das ist z nicht.)

stattdesen : !((z==’+’) || (z==’-’) || (z== …
oder : (z!=’+’) && (z!=’-’) && …

alternativ while(0 == strchr(„±*/eE“,z)) (siehe „strchr“)

Gruß
achim