kein "else if" in xcode?

mobis.fr

mobis.fr

Aktives Mitglied
Thread Starter
Dabei seit
28.01.2004
Beiträge
1.057
Reaktionspunkte
4
tach. ich hab da n programm in c/c++:

Code:
#include <stdio.h>
int main(void) {
   char response;
   printf("Denk Dir eine Nummer zwischen 1 und 100 aus.\n");
   printf("Das errate ich in 7 oder weniger Versuchen \n\n");
   do {
      int lo = 1, hi = 100;
      int guess;
      while (lo <= hi) {
         guess = (lo + hi) / 2;
         printf("Ist es %d ",guess);
         printf(" ((h)oeher/(n)iedriger/(j)a): ");
         fflush(stdout);
         scanf("%c%*c",&response);
         if (response == 'h')
            lo = guess + 1;
         else if (response == 'n')
            hi = guess – 1;
         else if (response != 'j')
            printf("Erraten ... :-)");
         else
            break;
      }
      /* Resultat ausgeben */
      if (lo > hi)
         printf("Du schummelst!\n");
      else
         printf("Deine Nummer lautet: %d\n",guess);
      printf("Noch ein Spiel (j)a/nein : ");
      fflush(stdout);
      scanf("%c%*c",&response);
   } while( response == 'j' );
   return 0;
}

die fehlermeldung kommt immer vor dem ersten else if
kann es sein, das der compiler den befehl nicht kennt?
fehlermeldung geht immer: "expect ; before token"

gruß
mobis
 
danke das wars.

wie hast du das gesehen?
 
Switch ist besser geeignet...

Hi, sowas mit if zu machen ist keine gute Idee. Ich würde dir empfehlen die switch Abfrage zu benützen.

Code:
switch( response ) {
 case 'h'
           lo = guess + 1;
           break;
 case 'n'
           hi = guess – 1;
           break;
 case 'j'
           printf("Erraten ... :-)");
           break;
}


Gruß Daniel.
 
ändere mal

Code:
else if (response == 'n')
            hi = guess – 1;
in
Code:
else if (response == 'n')  
          hi = guess--;

könntest es bei lo = guess + 1; eigentlich auh in lo = guess++ machen, ist eleganter :p
 
Ändere das mal lieber nicht so. Sonst wird lo zu guess und DANACH wird guess erst verändert. Wenn dann:
Code:
hi = ++guess;
Aber als Anfänger würde ich solche Spielereien erstmal lassen, was da passieren kann siehst du ja...
 
ich weis, dass es effektivere methoden gibt,
es ging bei der übung nur um diese else if anweisung... ;)

aber danke das ihr euch damit beschäftigt habt



gruß mobis
 
Zurück
Oben Unten