Überprüfung von double-Zahlen



  • Hallo nochmal,
    ich versuche gerade folgende Aufgabe zu lösen:

    Eine Zahl x vom Typ double soll von der Tastatur eingegeben werden. Die Zahl soll nur dann
    akzeptiert werden, wenn sie im Bereich –10.0 <= x < +10.0 liegt. Schreiben Sie für diesen
    Zweck ein Programm, das bei ungültiger Eingabe einen Hinweis ausgibt und die
    Eingabeaufforderung so lange wiederholt, bis die Zahl im geforderten Bereich liegt.

    Hier ist mein Ansatz:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(void){
    double x;
    do{	
    printf ("Bitte geben Sie eine Zahl ein:");
    scanf_s("%lf", &x);
    if (x < -10 && x > 10)
    printf ("Achtung: Die Zahl liegt nicht im geforderten Bereich");
    }while(x < -10 && x > 10);
    system ("PAUSE");  
    }
    

    Nur leider funktioniert das nicht ganz so wie ich mir das vorgestellt habe.
    Eig. sollte er doch so die Schleife immer wiederholen wenn keine Zahl im Bereich von -10 bis +10 eingegeben wurde?

    Danke schonmal.


  • Mod

    if (x < -10 && x > 10)
    

    Ich übersetze mal auf Deutsch:

    (wenn x kleiner als -10) UND (wenn x größer als 10), dann tue...

    Rate mal, auf wie viele Zahlen dies zutrifft 😉 .



  • Das while heißt solange.

    while(x < -10 && x > 10); ist dann: solange ( x kleiner -10 und x größer 10)

    Für welche Zahl trifft das zu, die das gleichzeitig ist?

    Da muss ein oder hin.

    while((x < -10) || (x > 10));
    


  • Ah ok, vielen Dank.


Anmelden zum Antworten