Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Fehler bei Ja/Nein-Abfrage

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
08.12.2010, 15:08 Uhr
Antik



In dieses Programm soll eine simple Ja oder Nein-Abfrage eingebaut werden.

J(a) funktioniert auch prima. Bei anderen Buchstaben zeigt er an "ungültige Abfrage" und wiederholt die Abfrage.

Bei n(ein) hingehen löst er die letzten beiden If-Anweisungen (fett marktiert zusammen aus. Also "testUngueltige Eingabe" und wiederholt die Abfrage erneut.

Was habe ich hier falsch gemacht?

Ich bitte zu entschuldigen, sollten weitere Fehler enthalten sein, etwas zu umständlich gemacht sein - ich befinde mich erst am Anfang.


Code:
#include <stdio.h>
#include <stdlib.h>

int main()
{
  float a, b, sum, sum1, dif, dif1, pro, pro1, quo, quo1;
  char x, x1;
  
p1:  printf ("Wollen sie rechnen j/n:");
     fflush (stdin);
     scanf  ("%c", &x);
  
     if (x == 'j'){
  
         printf ("Geben sie zwei Zahlen ein, trennen sie diese durch Leerzeichen:");
         scanf  ("%f %f", &a, &b);
  
             printf ("\nWieviel sind %.2f + %.2f?\n", a, b);
             scanf  ("%f", &sum);
  
             sum1 = a + b;
  
                 if (sum1 == sum){
                     printf ("richtig!\n\n");
                 }
          
                 else {
                     printf ("falsch! richtig ist %.2f + %.2f = %.2f\n\n", a, b, sum1);
                 }
          
             printf ("Wieviel sind %.2f - %.2f?\n", a, b);
             scanf  ("%f", &dif);
  
             dif1 = a - b;
  
                 if (dif1 == dif){
                     printf ("richtig!\n\n");
                     }
          
                 else {
                     printf ("falsch! richtig ist %.2f - %.2f = %.2f\n\n", a, b, dif1);
                     }  
          
             printf ("Wieviel sind %.2f * %.2f?\n", a, b);
             scanf  ("%f", &pro);
  
             pro1 = a * b;
  
                 if (pro1 == pro){
                     printf ("richtig!\n\n");
                     }
          
                 else {
                     printf ("falsch! richtig ist %.2f * %.2f = %.2f\n\n", a, b, pro1);
                     }  
  
             if (b == 0){
                 printf ("Durch 0 teilen kann nur Chuck Norris.\n\n");
                 }
  
             else {
                 printf ("Wieviel sind %.2f / %.2f?\n", a, b);
                 scanf  ("%f", &quo);
  
                 quo1 = a / b;
  
                     if (quo1 == quo){
                         printf ("richtig!\n\n");
                         }
          
                     else {
                         printf ("falsch! richtig ist %.2f * %.2f = %.2f\n\n", a, b, quo1);
                         }}}
            
    if (x == 'n'){
         printf("test");
         }    
        
     if (x != 'n', 'j'){
         printf ("Ungueltige Eingabe\n\n");
         goto p1;
         }
          
  system("PAUSE");    
  return 0;
}

Dieser Post wurde am 08.12.2010 um 15:09 Uhr von Antik editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.12.2010, 15:24 Uhr
Tommix



Hallo,
der Komma-Operator macht etwas ganz anderes, als Du vermutest. Die Abfrage müßte eher

C++:
if ((x != 'n') && (x != 'j')) {...


lauten.
Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.12.2010, 15:42 Uhr
Antik



Vielen Dank Tommix!

Funktioniert wunderbar.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: