Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2023, 16:24   #1
lenaiv
Пользователь
 
Регистрация: 16.03.2023
Сообщений: 67
По умолчанию Функция не работает с отрицательными числами

Код:
template <typename Type>
bool met(Type num)
{
    std::ostringstream os;
    os << num;
    std::string str = os.str();
    str.erase(remove(str.begin(), str.end(), '.'), str.end());
    int len = str.length();
    for (int i = 0; i < len / 2; i++)
    {
        if (str[i] != str[len - i - 1])
            return false;
    }
    return true;
}

Функция должна считать как на фото, а она считает, но не берет отрицательные числа. Как это исправить? И нужно применять template (обязательно) в функции.
Изображения
Тип файла: png Снимок2.PNG (6.1 Кб, 14 просмотров)
lenaiv вне форума Ответить с цитированием
Старый 31.03.2023, 16:28   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

А если добавить:
Код:
str.erase(remove(str.begin(), str.end(), '-'), str.end());
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 31.03.2023, 18:30   #3
lenaiv
Пользователь
 
Регистрация: 16.03.2023
Сообщений: 67
По умолчанию

Если поставить '-', а убрать '.', то не реагирует на вещественные. Я уже пробовала менять, поэтому и спрашиваю как охватить все?
lenaiv вне форума Ответить с цитированием
Старый 31.03.2023, 19:56   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Я предлагал не заменить, а добавить:
Код:
str.erase(remove(str.begin(), str.end(), '.'), str.end());
str.erase(remove(str.begin(), str.end(), '-'), str.end());
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 31.03.2023 в 19:58.
BDA на форуме Ответить с цитированием
Старый 31.03.2023, 20:06   #5
lenaiv
Пользователь
 
Регистрация: 16.03.2023
Сообщений: 67
По умолчанию

Спасибо большое, все получилось. Я просто Вас не поняла.
lenaiv вне форума Ответить с цитированием
Старый 31.03.2023, 20:19   #6
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Проверьте такое число 1000000000.0000000001
macomics вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа не работает с отрицательными числами. Почему? I love bellydance Помощь студентам 3 06.11.2013 10:34
прога на асемблере не работает с отрицательными числами frankfish Помощь студентам 1 12.03.2009 09:05