Программа запрашивает у пользователя шестизначное число. Вывести на экран, соблюдал ли он правила. Т.е., ввель ли user шестизначное число.
Чтобы проверить, шестизначное ли число, я делил это число на 1000000
, так как в данном случае шестизначное число должно давать 0.
Проверка работает правильно с числами типа: 1234567
, 12
, 789625244242
и т.п. (программа оповещает, что число введено не шестизначное)
Работает не правильно с астрономическими числами : 2e10
, 2e8
...
(программа выводит, что числа шестизначные).
Поэтому мне кажется, что мой алгоритм не правильный.
Подскажите, пожалуйста, как правильно решить эту задачу. Спасибо.
string s;
cin >> s;
if (s[0] != '0' && std::all_of(s.begin(), s.end(),
[](const char& c) { return isdigit(c); }) && s.size() == 6)
cout << "ok";
так хотели?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
(index):22 [Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experienceFor more help, check https://xhr