Input liczb w zakresie

0

User podaje liczbę 1 <= n <= 10

Jak mogę zrobić takie cos, ze input pozwala tylko na wprowadzenie liczby od 1 do 10?
Mam coś takiego, ale nie wiem jak zrobić, żeby było mozna wprowadzic liczby od 1 do 10 tylko.

 int n;

 cin >> n;
2

Na przykład tak:

int n;

do {
  cin >> n;

  if (n < 1 || n > 10) {
    cout << "Podaj liczbę z zakresu <1, 10>" << endl;
  }
} while (n < 1 || n > 10);
3

Na standardowych strumieniach nie ma możliwości chwycenia tak niskopoziomowo, aby nie dopuścić innych znaków. To by można chcieć na GUI

Musisz użyć najstarszego wzorca programistycznego: dziel i rządź, a) input b) sprawdzenie zakresu

0
constexpr MinValue=1,MaxValue=10;
for(int n;cin;)
{
   cout<<"Podaj warotsc z zakresu ("<<MinValue<<".."<<MaxValue<<"): ";
   if((cin>>n)&&(MinValue<=n)&&(n<=MaxValue)) cout<<"Podano wartosc "<<n<<endl;
}
0

Mam pytanie, czy można w taki sposób tworzyc tablice?

int n;
cin >> n;

int tablica[n];

czy powinno być:

int *tablica = new int[n];
2

TO się nazywa Variable Length Array (VLA) i w standardzie C++ nie jest dozwolone.
Działa, bo VLA jest dostępne w standardzie C, a kompilatory domyślnie pozwalają na mieszanie C z C++.

A tak poza tym https://dsp.krzaq.cc/post/176/ucze-sie-cxx-kiedy-uzywac-new-i-delete/

1 użytkowników online, w tym zalogowanych: 0, gości: 1