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;
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;
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);
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
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;
}
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];
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/