Учись программированию на C++ Builder бесплатно!
Содержание[Скрыть]

Функция abs() возвращает модуль (неотрицательное, целое число) числа x. 

При подключении файла stdlib.h функция abs() будет определяться макрокомандой, которую можно расширять до встроенного кода.
Если необходимо функцию abs() использовать вместо макрокоманды, то следует после #include <stdlib.h> добавить #undef abs().

При подключении файла math.h функция abs(), при передаче аргумента, возвращает абсолютное значение либо целого числа, либо числа с плавающей запятой.

Функция abs() принимает только один аргумент.

В C++ функция abs() перегружена в прототипах <cstdlib>, <complex> (комплексные числа), <valarray> (массив целых чисел), <cmath> (числа с плавающей точкой).

Синтаксис

Для целочисленных:

#include <stdlib.h>
int abs(int x);
long abs(long x);

Для вещественных:

#include <math.h>
float abs(float x);
double abs(double x);
long double abs(long double x);

Для комплексных:

#include <complex.h>
double abs(complex x);

Прототип

Язык программирования Заголовочный файл
С++ stdlib.h
math.h
complex.h
C cmath

Возвращаемое значение

Функция abs() для целочисленных и вещественных чисел возвращает целое значение от 0 до 32767. Если передаваемый аргумент будет отрицательным и равным -32768, то он будет возвращен, как -32768.

Функция abs() для комплексных чисел возвращает значение типа double.

Переносимость

Функция abs() доступна в системе UNIX и определена в стандарте ANSI C.
Функция abs() для комплексных чисел требует язык программирования С++.

Пример

#include <iostream>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <complex>

using namespace std;

int main()
{
    int number1 = -2020; // Модуль целого числа
    printf("abs(%d) = %d\n", number1, abs(number1));
    // abs(-2020) = 2020

    float number2 = -3.14; // Модуль числа с плавающей запятой
    printf("abs(%f) = %f\n", number2, abs(number2));
    // abs(-3.14) = 3.14

    complex< double > number3(5.0, 3.0); // Модуль комплексного числа
    cout << "abs(complex) = " << abs(number3) << endl;
    // abs(complex) = 5.83

    return 0;
}
Поделиться