Problem mit Wertebereichseingabe

weby6

Grünschnabel
Hallo,

ich programmiere grade ein Programm, das die eingabe (eine Zahl von 1 - 5) überprüft, und nur wenn eine Zahl zwischen 1-5 eingegeben wurde, zur nächsten Anweisung ausführt. Wenn das nicht der Fall ist, soll das die Eingabe erneut auftauchen.

Das ganze soll mit einer do - while Schleife Programmiert werden. Hat jemand eine Idee, wie ich die Variable überprüfen kann. Eine art, "enthalten- in"- Funktion.
Das folgende Script funktioniert leider nicht:

Code:
#include <iostream.h> 
int main() 
{ 
int zahl; 
do 
{ 
cout << "Bitte geben sie eine Zahl (1<N<4) ein:" << endl; 
cin >> zahl; 
} while (zahl>1 && zahl<4); 
cout << "Programmende!" << endl; 
getchar(); 
return 0; 
}

Danke...
weby6
 
Warum unbeding eine Do-While Schleife?
Code:
int zahl;
cin >> zahl;
switch(zahl){
   case 1,2,3,4,5: weiter();
   break;
   default: nichtweiter();
}

Greetz...
Sinac
 
Ich muss eine Do-While Schleife verwenden, da das oben gennante Programm nur ein Beispielprogramm ist. Ich bin in der Ausbildung und muss ein anderes Programm entwickeln. Ich soll das nicht mit einer Case Verzweigung realisieren.

In Pascal funktioniert das mit "in". Es ist eine Funktion, die in etwa bedeutet "vorhanden in".
Trozdem danke!
weby6
 
Du hast die Bedingung falsch rum:

Du mußt natürlich die Frage solange stellen, solange die
Zahl nicht im gewünschten Intervall ist, also:

Code:
{
..
}while( zahl <= 1 || zahl >= 4 );

Für zwischen 1 und 5 mußt du entsprechend schreiben:

Code:
{
..
}while( zahl < 1 || zahl > 5 );

oder

{
..
}while( zahl <= 0 || zahl >= 6 );


'Enthalten in', so wie in Pascal gibt es in C nicht, zumindest nicht
als Standard. Im C++ Builder gibt es zwar ein 'Set' (im Gegensatz zu
Visual C++, meines Wissens zumindest), aber davon
lass mal schön die Finger, wenn du erst anfängst C zu lernen.

Greets
BadMourning
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück