Это просто. Кажется, что оба числа должны быть положительными и не превышать 10000.
Функция может выглядеть, например, следующим образом
bool range_is_valid(int a, int b)
{
return a <= b && a > 0 && b <= 10'000;
}
Однако это не очень хороший подход, потому что функция использует маги c число 10000
.
Лучше передать такое число в качестве аргумента функции.
Принимая это во внимание, функция может выглядеть следующим образомg
#include <utility>
//...
bool range_is_valid( const std::pair<int, int> &data, const std::pair<int, int> &range )
{
return data.first <= data.second &&
data.first > range.first &&
data.second <= range.second;
}
Вот демонстрационная программа.
#include <iostream>
#include <iomanip>
#include <utility>
bool range_is_valid( const std::pair<int, int> &data, const std::pair<int, int> &range )
{
return data.first <= data.second &&
data.first > range.first &&
data.second <= range.second;
}
int main()
{
const std::pair<int, int> range( 0, 10'000 );
int a, b;
size_t attempts = 3;
while ( attempts-- != 0 )
{
std::cout << "Enter numbers " << range.first <<
" < a <= b <= " << range.second << '\n';
std::cin >> a >> b;
std::cout << std::boolalpha << range_is_valid( { a, b }, range ) << '\n';
}
return 0;
}
Ее вывод может выглядеть, например, как
Enter numbers 0 < a <= b <= 10000
0 10000
false
Enter numbers 0 < a <= b <= 10000
1 10001
false
Enter numbers 0 < a <= b <= 10000
1 10000
true
Всегда пытайтесь написать более универсальную c функцию.
Обратите внимание, что это объявление
bool hasDigit[10] = {false, false, false, false, false, false, false, false, false, false};
выглядит глупо.
Вы можете просто написать
bool hasDigit[10] = {};
или
bool hasDigit[10] = { false };