C Academy · Lektion

Inkludera math.h

Länka och använd matematikbiblioteket.

Lektion 1 av 413 steg

Inkludera math.h är en gratis lektion i C Academy på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för C Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i C Academy innehåller totalt 4 lektioner.

Varför math.h finns

C håller sitt kärnspråk litet. Operationer som kvadratrötter, potenser och trigonometri är inte inbyggda i själva språket.

I stället finns de i en headerfil i standardbiblioteket som heter math.h. För att använda dessa funktioner måste Ni inkludera headerfilen högst upp i programmet.

Inkludera headerfilen

Lägg till den här raden nära början av filen, tillsammans med stdio.h:

  • #include <stdio.h> för in- och utmatning
  • #include <math.h> för matematiska funktioner

Vinkelparenteser anger att kompilatorn ska söka i systemets standardkataloger.

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

int main(void) {
    printf("math.h is ready\n");
    return 0;
}

Ert första anrop till math.h

När math.h har inkluderats kan Ni anropa funktioner som sqrt (kvadratrot).

De flesta matematiska funktioner tar emot och returnerar värden av typen double, så resultaten skrivs ut med formatspecificeraren %f.

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

int main(void) {
    double r = sqrt(16.0);
    printf("sqrt(16) = %f\n", r);
    return 0;
}

Länka matematikbiblioteket

I vissa system, särskilt Linux med gcc, finns matematiska funktioner i en separat biblioteksfil.

Om Ni får felet undefined reference ska Ni lägga till flaggan -lm vid kompileringen:

  • gcc program.c -lm

-lm betyder "länka matematikbiblioteket".

Allt är double

Som standard arbetar funktionerna i math.h med typen double. De tar emot argument av typen double och returnerar resultat av typen double.

Ni kan även skicka in en int. C konverterar den automatiskt till double före anropet.

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

int main(void) {
    int n = 25;
    double root = sqrt(n);
    printf("root = %f\n", root);
    return 0;
}

Skriv ut matematiska resultat

Använd %f för att skriva ut en double. Ni kan styra antalet decimaler med %.2f (två decimaler).

Det gör långa decimalvärden tydliga och lättlästa.

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

int main(void) {
    double r = sqrt(2.0);
    printf("%f\n", r);
    printf("%.2f\n", r);
    return 0;
}

Praktiska konstanter

Många system definierar användbara konstanter i math.h, till exempel M_PI för pi.

De ingår inte i den strikta standarden, men är mycket vanliga. Om M_PI saknas kan Ni definiera en egen konstant.

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

int main(void) {
    printf("pi is about %.5f\n", M_PI);
    return 0;
}

En genomgång av innehållet

Headerfilen math.h ger Er många verktyg, grupperade efter användningsområde:

  • Potenser och rötter: pow, sqrt
  • Trigonometri: sin, cos, tan
  • Logaritmer: log, log10
  • Avrundning: floor, ceil, round

Vi går igenom varje grupp i nästa lektioner.

Kombinera matematik med logik

Resultat från math.h är vanliga tal som Ni kan jämföra och använda i if-satser.

Här kontrollerar vi om ett tal är en perfekt kvadrat genom att jämföra dess rot med ett heltal.

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

int main(void) {
    double root = sqrt(49.0);
    if (root == 7.0) {
        printf("49 is a perfect square\n");
    }
    return 0;
}

Vanliga misstag

Se upp för följande nybörjarmisstag:

  • Att glömma #include <math.h>
  • Att glömma -lm vid länkning på Linux
  • Att skriva ut en double med %d i stället för %f

Alla dessa misstag leder till ett förvirrande fel eller felaktig utskrift.

Sätt ihop allt

Här är ett litet komplett program som använder två matematiska funktioner tillsammans.

Lägg märke till inkluderingarna högst upp och variablerna av typen double som innehåller resultaten.

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

int main(void) {
    double a = sqrt(81.0);
    double b = pow(2.0, 5.0);
    printf("sqrt=%.1f pow=%.1f\n", a, b);
    return 0;
}

Snabb kontroll

Vilken headerfil måste Ni inkludera för att använda funktioner som sqrt och pow?

Sammanfattning

Ni har lärt Er att matematiska funktioner finns i math.h, som inkluderas med #include <math.h>.

Funktionerna använder typen double, skrivs ut med %f och kan på Linux behöva länkflaggan -lm. Nästa steg är att gå igenom potenser och rötter i detalj.

Gratis att börja

Lär dig C med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
39
Lektioner
144

Vanliga frågor

Är lektionen ”Inkludera math.h” gratis?

Ja – hela texten till ”Inkludera math.h” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i C Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i C Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Inkludera math.h”?

Länka och använd matematikbiblioteket. Ni övar på C Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig C Academy?

Du behöver inga förkunskaper. Utbildningen i C Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Inkludera math.h”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här C Academy-lektionen?

Ja. Varje C Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Inkludera math.h
  2. Potenser och rötter
  3. Trigonometriska funktioner och logaritmer
  4. Avrundning och absolutbelopp
← Tillbaka till C Academy