Программа работает корректно, но, при вводе чисел с экспоненциальной записью, в виде суммы выдает только мантиссу. Как это исправить?

#include <iostream>

int value()
{
    while (true)
    {
        std::cout << "Введите целое число i: " << std::endl;
        int i;
        std::cin >> i;

        if (std::cin.fail())
        {
            std::cin.clear();
            std::cin.ignore(32767, '\n');
            std::cout << "Вы ввели неправильное или слишком большое значение. Пожалуйста, попробуйте еще раз.\n" << std::endl;
        }
        else
        {
            std::cin.ignore(32767, '\n');
            return i;
        }
    }
}

int main()
{
    setlocale(LC_ALL, "ru");
    std::cout << "Эта программа считает сумму четных чисел от единицы до N" << std::endl;
    int N = value();
    int sum = 0;
    if (N > 0)
    {
        for (int a = 1; a <= N; a++)
        {
            if (a % 2 == 0)
                sum += a;
        }
    }
    else if (N < 0)
    {
        for (int a = 1; a >= N; a--)
        {
            if (a % 2 == 0)
                sum += a;
        }
    }
    std::cout << "Сумма= " << sum << std::endl;

    return 0;
}

Ответы (0 шт):