Ten kod jest nieprawidłowy:
- zamiast
for
lepiej zrobić do...while
;
- kiedy prosisz o podanie liczby to robisz
cin >> liczba;
, a nie cin >> n;
;
- powtarzasz pytanie w kodzie dwa razy, bez sensu; Popatrz jak ja to zrobiłem u siebie;
- jeżeli liczba się nie powtórzyła to, na której pozycji mam ją zapisać w tej tablicy?
Popatrz. Ten kod dba, żeby podana liczba była z zakresu od 0 do 500
. Kiedy wpisana liczba jest poza zakresem to należy olać resztę pętli (instrukcja continue
) i zacząć ją od nowa.
#include<iostream>
using namespace std;
bool contains(int number, int numbers[], size_t size){
for(size_t i = 0; i < size; ++i)
if(numbers[i] == number) return true;
return false;
}
int main()
{
int numbers[] = { 1, 2, 3, 4, 5 };
size_t array_size = sizeof(numbers) / sizeof(numbers[0]);
char quitChar = ' ';
int number = 0;
do
{
cout << "Enter number: " ; cin >> number;
if(number < 0 || number > 500) continue;
cout << "Value " << (contains(number, numbers, array_size) ? "exists" : "doesn't exists") << endl;
cout << "Again? "; cin >> quitChar;
}
while(quitChar != 'n');
return 0;
}