Zahleneingabe in definiertem Wertebereich

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Zahleneingabe in definiertem Wertebereich

    Hallo,
    ich möchte in einem Programm 10 Zahlenwerte einlesen. Diese Zahlenwerte sollen im Intervall -5 bis +5 liegen. Wie kann ich am besten diese Eingabe prüfen und bei falscheingabe die Eingabe wiederholen?

    Quellcode

    1. anfang:
    2. printf ("Bitte Wert zwischen +5 und -5 eingeben:\t");
    3. scanf ("%d", &x);
    4. if (x>5 || x<-5)
    5. {
    6. goto anfang;
    7. }


    Am einfachsten ist wohl dieser Spagethi Code. Irgendwioe befürchte ich das die Lösung ziemlich einfach ist aber mir fällt gerade nix besseres ein...
  • uiiii peinlich^^
    bin nochmal in mich gegangen und hab eine bessere lösung gefunden... vielleicht stellt sich ja irgendwann jemand genauso doof an und das hier hilft, ansonsten kanns gelöscht werden, wenn nicht gerade jemande noch ne viel bessere lösung hat :)

    Quellcode

    1. for (i=0; i<10; i++)
    2. {
    3. printf ("Bitte Wert zwischen +5 und -5 eingeben:\t");
    4. scanf ("%d", &x[i]);
    5. while(x[i]>5 || x[i]<-5 || x[i]==0)
    6. {
    7. printf ("\n\nFALSCHE EINGABE\a");
    8. printf ("\nBitte Wert zwischen +5 und -5 eingeben:\t");
    9. scanf ("%d", &x[i]);
    10. }
    11. }
    Alles anzeigen
  • so never ending story :) gibt immer was zu verbessern :) hab die überprüfung jetzt ausgelagert in eine funktion...

    Quellcode

    1. int int_interval(int value, int upper_limit, int lower_limit)
    2. {
    3. while (value > upper_limit || value < lower_limit)
    4. {
    5. printf("FALSCHE EINGABE!\nWerte im Bereich %d bis %d eingeben.", upper_limit, lower_limit);
    6. printf("Neuen Wert eingeben:\t");
    7. scanf("%d", &value);
    8. }
    9. return value;
    10. }


    meine frage: ich habe versucht den übergabeparameter sowie den return wert der fkt als float value zu deklarieren. aber aus dem hauptprogramm einen int wert zu übergeben. das funktioniert allerdings nicht so ohne weiteres. ist es möglich einer fkt die float erwartet trotzdem int zu übergeben?

    btw: kann mir jemand einen editor mit syntax hervorhebung empfehlen? also wirklich nur einen editor ohne compiler oder sonstigen schnickschnack.
  • wenn ich das berücksichtige was in meinem main() steht bleibe ich bei mieiner aussage :P
    wenn ich aber mein main() an deinen code anpasse spare ich mir tatsächslich nochmal zwei zeilen :) was wohl dazu führt das ich meine vorherige aussage leugne und das gegenteil behaupte^^

    eine frage ist bisher noch unbeantwortet geblieben, kann ich einer funktion die float oder double erwartet irgendwie einen int wert übergeben, sodass die funktion dann auch noch das tut was ich möchte?