Else-Verzweigung wird missachtet



  • Hallo - ich will zum Einstieg in C ein kleines Taschenrechner-Programm schreiben (u.a. im Rahmen einer Belegarbeit im Studium) - doch verzweifle schon am Anfang..

    Und zwar wird, egal was ich drücke, die else-Anweisung nicht befolgt..

    Was habe ich hier übersehen?

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[]) // was heißt das??!
    {
    
     char KorT; //Abfrage Kopfrechen oder Taschenrechner
    
      printf("Kopfrechnen oder Taschenrechner? Kopfdrechnen drücke k oder 1, Taschenrechner drücke t oder 2\n");
      scanf("%c", &KorT);
      printf("\n");
    
      if (KorT=='1' || 'k' || 'K')  // Buchstaben-Abfrage in If-Bedinung; Quelle http://www.easy-coding.de/if-bedingung-mit-buchstaben-zb-mit-char-t650.html
      // Oder in If-Bedinung; Quelle http://forum.chip.de/c-c-c-cli/if-bedingungen-710327.html
                 {
                  printf("Kopfrechnen");
                  }
      else 
                  { 
                   printf("Taschenrechner");
                   }
    
      printf("\n");
      system("PAUSE");	
      return 0;
    }
    

    Vielen Dank für eure Hilfe...



  • Als Compiler nutze ich http://www.c-programmieren.com/Download.html
    Ob C89, 99 oder 11 kann ich mangels Hintergrundwissen nicht beantworten



  • if (KorT=='1' || 'k' || 'K'
    

    muss heißen:

    if (KorT=='1' || KorT=='k' || KorT=='K')
    


  • 👍

    Vielen Dank für die schnelle und sehr hilfreiche Antwort. Hatte es vorher schon damit versucht, aber der Compiler schmiss einen Fehler aus. (woran der auch immer lag)



  • CalcuNow schrieb:

    Als Compiler nutze ich http://www.c-programmieren.com/Download.html
    Ob C89, 99 oder 11 kann ich mangels Hintergrundwissen nicht beantworten

    Dann solltest du aber die neuste Version nutzen. Mittlerweile ist das 5.4
    Die 4.9.irgendwas ist mittlerweile 8 Jahre alt.

    Kannst bei http://de.wikipedia.org/wiki/Dev-C%2B%2B nach der neuen Homepage schauen.



  • CalcuNow schrieb:

    int main(int argc, char *argv[]) // was heißt das??!
    

    Hattest du Funktionen schon? Und Strings/Arrays?
    Ich nehme mal an nicht.
    Deswegen würde dich meine Erklärung nur verwirren.
    In der Zwischenzeit schreibst du einfach int main() ohne das komische in den Klammern.


Anmelden zum Antworten