Почему вы хотите использовать странные жесткие команды, когда вы можете использовать:
if(a < 0)
a -= 2a;
Оператор if, очевидно, применяется только тогда, когда вы не уверены, будет ли число положительным или отрицательным.
В противном случае вам придется использовать этот код:
a = abs(a) // a is an integer
a = fabs(a) // a is declared as a double
a = fabsf(a) // a is declared as a float (C++ 11 is able to use fabs(a) for floats instead of fabs)
Чтобы активировать C ++ 11 (если вы используете Code :: Blocks, вам необходимо:
- Откройте Code :: Blocks (рекомендуемая версия: 13.12).
- Перейдите в «Настройки» -> «Компилятор».
- Убедитесь, что вы используете компилятор GNU GCC.
- Щелкните «Параметры компилятора», и на открытой вкладке щелкните «Флаги компилятора»
- Прокрутите вниз, пока не найдете: g ++ следует стандарту языка C ++ 11 ISO C ++ [-std = c ++ 11]. Проверьте это и нажмите OK.кнопка.
- Перезапустите Code :: Blocks, и тогда все готово!
После выполнения этих шагов вы сможете использовать fabs (a) для float вместо fabsf(a), который использовался только для C99 или меньше! (Даже C ++ 98 мог позволить вам использовать fabs вместо fабсф: P)