Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 24.10.2022
Сообщений: 9
1

Требуется защита от некорректного ввода числа для нахождения факториала

24.10.2022, 11:33. Показов 312. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вообщем, задача факториал который наверное много раз встречается у новичков.
Известен факториал числа n. Найти само это число. Например, известно, что 6 – факториал числа n, тогда n=3.
Требуется защита от некорректного ввода числа.
Ввёл число меньше нуля, - повторный ввод.
Ввёл число 100 факториала, - повтор и так далее,

Сам код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    int x, y = 2.0;
    do
    {
        cout << "Введите натуральное число:" << '\n';
        cin >> x;
    } while (x <= 0.0); // от отриц
    if (x == 100.0)
        do
        {
            cout << "Введите натуральное число:" << '\n';
            cin >> x;
        } while (x == 100.0); // пример от одного неправильного числа
        while (x % y == 0.0) { x /= y++; }
        cout << "Полученный факториал: " << --y << endl;
        return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.10.2022, 11:33
Ответы с готовыми решениями:

Защита от некорректного ввода для действительных чисел
Программа полностью рабочая, только нужно написать защиту от некорректного ввода, и не знаю как это...

Защита от некорректного ввода
Подскажите пожалуйста как доработать защиту от некорректного ввода: // ConsoleApplication4.cpp :...

Защита от некорректного ввода
Приветствую, помогите, пожалуйста, реализовать защиту от некорректного ввода. Должны быть...

Защита от некорректного ввода
Здравствуйте. 1 курс, полный нуб. Знаю только cin и cout, массивы. Пока все было нормально, но...

1
Модератор
2668 / 1787 / 931
Регистрация: 16.10.2013
Сообщений: 5,154
Записей в блоге: 15
24.10.2022, 11:54 2
Лучший ответ Сообщение было отмечено XYUJI0 как решение

Решение

Цитата Сообщение от XYUJI0 Посмотреть сообщение
C++
6
int x, y = 2.0;
зачем в целочисленную переменную записываете дробное число?

Цитата Сообщение от XYUJI0 Посмотреть сообщение
Требуется защита от некорректного ввода числа.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
int main()
{
    int x;
 
    do {
        std::cout << "x = ";
        std::cin >> x;
 
        if (x<0 || x>99) {
            std::cout << "incorrect value. try again.\n";
        }
    } while (x<0 || x>99);
 
    // factorial calculation
 
    return 0;
}
1
24.10.2022, 11:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.10.2022, 11:54
Помогаю со студенческими работами здесь

Защита от некорректного ввода
Как нужно переделать, чтобы 1) принимала еще отрицательные целые числа 2) не принимала нуль (1 и 2...

Защита от некорректного ввода
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); var zachita:String; begin ...

Защита от некорректного ввода
Здравствуйте! Нужно осуществить контроль при заполнении матрицы, если введены не корректные...

Защита от некорректного ввода
Здравствуйте. 1 курс, полный нуб. Знаю только cin и cout, массивы. Пока все было нормально, но...

Защита от некорректного ввода
Помогите, пожалуйста, с защитой от некорректного ввода! Программа выполняет задания с помощью...

Защита от некорректного ввода
Добрый день. Как можно запретить ввод чисел в массив длинною больше чем 5 цифр?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru