C-Standardbibliothek -<math.h>

Einführung

math.hDie Header-Datei definiert verschiedene mathematische Funktionen und ein Makro. Alle verfügbaren Funktionen in dieser Bibliothek haben Parameter vom Typdouble, und alle geben ein Ergebnis vom Typdoublezurück.

<math.h>Es ist eine Header-Datei in der C-Standardbibliothek, die eine große Anzahl von Funktionen und Makros für mathematische Operationen enthält. Diese Funktionen und Makros bieten grundlegende arithmetische Operationen, trigonometrische Funktionen, Exponentialfunktionen, Logarithmusfunktionen, Potenzfunktionen, Rundungsfunktionen usw.

Bibliotheksmakros

In<math.h>Unter ihnen dienen einige Makros dazu, den Fehlerstatus mathematischer Funktionen darzustellen:

MakroBeschreibung
HUGE_VALDer Wert, der zurückgegeben wird, wenn das Funktionsergebnis überläuft (positive Unendlichkeit). Dieses Makro stellt eine sehr große Gleitkommazahl mit doppelter Genauigkeit dar, die typischerweise als Rückgabewert bestimmter mathematischer Funktionen verwendet wird, wenn das Ergebnis den darstellbaren Bereich überschreitet. Wenn das Ergebnis einer Funktion zu groß ist, um als normale Gleitkommazahl dargestellt zu werden (d. h. ein Überlauf tritt auf), wird errno auf ERANGE (Bereichsfehler) gesetzt und HUGE_VAL oder sein negativer Wert (für negative Unendlichkeit) zurückgegeben.
HUGE_VALFDer Wert, der zurückgegeben wird, wenn das Funktionsergebnis überläuft (positive Unendlichkeit, Gleitkommatyp)
HUGE_VALLDer Wert, der zurückgegeben wird, wenn das Funktionsergebnis überläuft (positive Unendlichkeit, long double-Präzision)
INFINITYPositive Unendlichkeit
NANEin Wert, der keine Zahl ist (Not-A-Number)
FP_INFINITEStellt Unendlichkeit dar
FP_NANRepräsentiert einen nicht-numerischen Wert
FP_NORMALRepräsentiert eine normale Gleitkommazahl
FP_SUBNORMALRepräsentiert eine subnormale Zahl
FP_ZERORepräsentiert Null

Bibliotheksfunktionen

Im Folgenden sind die in der Header-Datei math.h definierten Funktionen aufgeführt:

Laufende NummerFunktion & Beschreibung
1double acos(double x)
Gibt den Arkuskosinus von x im Bogenmaß zurück.
2double asin(double x)
Gibt den Arkussinus von x im Bogenmaß zurück.
3double atan(double x)
Gibt den Arkustangens von x im Bogenmaß zurück.
4double atan2(double y, double x)
Gibt den Arkustangens von y/x im Bogenmaß zurück. Die Vorzeichen der Werte von y und x bestimmen den korrekten Quadranten.
5double cos(double x)
Gibt den Kosinus eines Winkels x im Bogenmaß zurück.
6double cosh(double x)
Gibt den hyperbolischen Kosinus von x zurück.
7double sin(double x)
Gibt den Sinus eines Winkels x im Bogenmaß zurück.
8double sinh(double x)
Gibt den hyperbolischen Sinus von x zurück.
9double tanh(double x)
Gibt den hyperbolischen Tangens von x zurück.
10double exp(double x)
Gibt e hoch x zurück.
11double frexp(double x, int *exponent)
Zerlegt die Gleitkommazahl x in eine Mantisse und einen Exponenten. Der Rückgabewert ist die Mantisse, und der Exponent wird in exponent gespeichert. Der resultierende Wert ist x = mantissa * 2 ^ exponent.
12double ldexp(double x, int exponent)
Gibt x multipliziert mit 2 hoch exponent zurück.
13double log(double x)
Gibt den natürlichen Logarithmus von x zurück (Logarithmus zur Basis e).
14double log10(double x)
Gibt den dekadischen Logarithmus von x zurück (Logarithmus zur Basis 10).
15double modf(double x, double *integer)
Der Rückgabewert ist der Bruchteil (der Teil nach dem Dezimalpunkt), und integer wird als ganzzahliger Teil gesetzt.
16double pow(double x, double y)
Gibt x hoch y zurück.
17double sqrt(double x)
Gibt die Quadratwurzel von x zurück.
18double ceil(double x)
Gibt den kleinsten ganzzahligen Wert zurück, der größer oder gleich x ist.
19double fabs(double x)
Gibt den Absolutbetrag von x zurück.
20double floor(double x)
Gibt den größten ganzzahligen Wert zurück, der kleiner oder gleich x ist.
21double fmod(double x, double y)
Gibt den Rest von x geteilt durch y zurück.

Häufige mathematische Konstanten

Die folgenden sind<math.h>Einige häufig verwendete mathematische Konstanten, definiert in:

KonstantenWertBeschreibung
M_PI3.14159265358979323846Pi π
M_E2.71828182845904523536Die Basis des natürlichen Logarithmus, e
M_LOG2E1.44269504088896340736log2(e)
M_LOG10E0.43429448190325182765log10(e)
M_LN20.69314718055994530942ln(2)
M_LN102.30258509299404568402ln(10)
M_PI_21.57079632679489661923π/2
M_PI_40.78539816339744830962π/4
M_1_PI0.318309886183790671541/π
M_2_PI0.636619772367581343082/π
M_2_SQRTPI1.128379167095512573902/√π
M_SQRT21.41421356237309504880√2
M_SQRT1_20.707106781186547524401/√2

Das Folgende verwendet<math.h>Beispielcode für die Funktionen und Konstanten in:

Beispiel

#include <stdio.h>
#include <math.h>

int main() {
    double x = 2.0;
    double y = 3.0;

    // Grundlegende Operationen
    printf("sqrt(%.1f) = %.2f\n", x, sqrt(x));
    printf("pow(%.1f, %.1f) = %.2f\n", x, y, pow(x, y));
    printf("exp(%.1f) = %.2f\n", x, exp(x));
    printf("log(%.1f) = %.2f\n", x, log(x));
    printf("log10(%.1f) = %.2f\n", x, log10(x));

    // Trigonometrische Funktionen
    double angle = M_PI / 4; // 45 Grad
    printf("sin(%.2f) = %.2f\n", angle, sin(angle));
    printf("cos(%.2f) = %.2f\n", angle, cos(angle));
    printf("tan(%.2f) = %.2f\n", angle, tan(angle));

    // Rundungsfunktionen
    double z = 5.8;
    printf("ceil(%.1f) = %.1f\n", z, ceil(z));
    printf("floor(%.1f) = %.1f\n", z, floor(z));
    printf("fabs(%.1f) = %.1f\n", z, fabs(z));

    return 0;
}

Das Ausführen des obigen Programms erzeugt eine Ausgabe ähnlich der folgenden:

sqrt(2.0) = 1.41
pow(2.0, 3.0) = 8.00
exp(2.0) = 7.39
log(2.0) = 0.69
log10(2.0) = 0.30
sin(0.79) = 0.71
cos(0.79) = 0.71
tan(0.79) = 1.00
ceil(5.8) = 6.0
floor(5.8) = 5.0
fabs(5.8) = 5.8

<math.h>Es bietet eine Reihe mathematischer Funktionen und Konstanten, die Programmierern helfen, verschiedene mathematische Berechnungen in C durchzuführen. Durch die Verwendung dieser Funktionen und Konstanten können komplexe mathematische Operationen einfach implementiert werden, wodurch die Effizienz und Lesbarkeit des Programms verbessert werden.

Weitere Erweiterungen