0Pricing
C Academy · บทเรียน

รวม math.h

เชื่อมโยงและใช้ไลบรารีคณิตศาสตร์

รวม math.h เป็นบทเรียน C Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C Academy มีบทเรียนทั้งหมด 4 บทเรียน

เหตุผลที่มี math.h

C รักษาภาษาหลักให้มีขนาดเล็ก การดำเนินการอย่างการหารากที่สอง การยกกำลัง และตรีโกณมิติไม่ได้มีอยู่ในตัวภาษาเอง

แต่การดำเนินการเหล่านี้อยู่ในไฟล์ส่วนหัวของไลบรารีมาตรฐานชื่อ math.h หากต้องการใช้ฟังก์ชันเหล่านี้ คุณต้องรวมไฟล์ส่วนหัวไว้ด้านบนของโปรแกรม

การรวมไฟล์ส่วนหัว

เพิ่มบรรทัดนี้ไว้ใกล้ด้านบนของไฟล์ เช่นเดียวกับ stdio.h:

  • #include <stdio.h> สำหรับอินพุต/เอาต์พุต
  • #include <math.h> สำหรับฟังก์ชันทางคณิตศาสตร์

เครื่องหมายวงเล็บแหลมบอกให้คอมไพเลอร์ค้นหาในโฟลเดอร์ระบบมาตรฐาน

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

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

การเรียกใช้ math.h ครั้งแรก

เมื่อรวม math.h แล้ว คุณจะเรียกใช้ฟังก์ชันอย่าง sqrt (รากที่สอง) ได้

ฟังก์ชันทางคณิตศาสตร์ส่วนใหญ่รับและคืนค่า double ดังนั้นเราจึงพิมพ์ผลลัพธ์ด้วยตัวระบุรูปแบบ %f

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

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

การเชื่อมโยงไลบรารีคณิตศาสตร์

ในบางระบบ โดยเฉพาะ Linux ที่ใช้ gcc ฟังก์ชันทางคณิตศาสตร์จะอยู่ในไฟล์ไลบรารีแยกต่างหาก

หากพบข้อผิดพลาดไม่พบการอ้างอิง ให้เพิ่มแฟล็ก -lm ตอนคอมไพล์:

  • gcc program.c -lm

-lm หมายถึง "เชื่อมโยงไลบรารีคณิตศาสตร์"

ทุกอย่างเป็น double

โดยค่าเริ่มต้น ฟังก์ชันใน math.h จะทำงานกับชนิด double รับอาร์กิวเมนต์เป็น double และคืนผลลัพธ์เป็น double

คุณสามารถส่งค่า int ได้เช่นกัน โดย C จะแปลงค่าเป็น double ให้อัตโนมัติก่อนการเรียกใช้

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

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

การพิมพ์ผลลัพธ์ทางคณิตศาสตร์

ใช้ %f เพื่อพิมพ์ค่า double คุณควบคุมจำนวนตำแหน่งทศนิยมได้ด้วย %.2f (ทศนิยมสองตำแหน่ง)

วิธีนี้ช่วยให้ค่าทศนิยมยาว ๆ เป็นระเบียบและอ่านง่าย

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

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

ค่าคงที่ที่มีประโยชน์

หลายระบบกำหนดค่าคงที่ที่มีประโยชน์ไว้ใน math.h เช่น M_PI สำหรับค่า pi

ค่าเหล่านี้ไม่ได้เป็นส่วนหนึ่งของมาตรฐานอย่างเคร่งครัด แต่พบได้บ่อยมาก หากไม่มี M_PI คุณสามารถกำหนดขึ้นเองได้

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

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

สำรวจสิ่งที่อยู่ภายใน

ไฟล์ส่วนหัว math.h มีเครื่องมือมากมาย แบ่งตามวัตถุประสงค์ดังนี้:

  • การยกกำลัง/ราก: pow, sqrt
  • ตรีโกณมิติ: sin, cos, tan
  • ลอการิทึม: log, log10
  • การปัดเศษ: floor, ceil, round

เราจะสำรวจแต่ละกลุ่มในบทเรียนถัดไป

การผสมคณิตศาสตร์กับตรรกะ

ผลลัพธ์จาก math.h เป็นตัวเลขทั่วไปที่คุณเปรียบเทียบและใช้ในคำสั่ง if ได้

ในที่นี้เราตรวจสอบว่าตัวเลขเป็นกำลังสองสมบูรณ์หรือไม่ โดยเปรียบเทียบรากของมันกับจำนวนเต็ม

#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;
}

ข้อผิดพลาดที่พบบ่อย

ระวังข้อผิดพลาดสำหรับผู้เริ่มต้นเหล่านี้:

  • ลืม #include <math.h>
  • ลืม -lm เมื่อเชื่อมโยงบน Linux
  • พิมพ์ค่า double ด้วย %d แทนที่จะเป็น %f

แต่ละกรณีจะทำให้เกิดข้อผิดพลาดที่เข้าใจยากหรือเอาต์พุตไม่ถูกต้อง

นำทุกอย่างมารวมกัน

นี่คือตัวอย่างโปรแกรมขนาดเล็กที่สมบูรณ์ ซึ่งใช้ฟังก์ชันทางคณิตศาสตร์สองฟังก์ชันร่วมกัน

สังเกตการรวมไฟล์ส่วนหัวไว้ด้านบน และตัวแปร double ที่เก็บผลลัพธ์

#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;
}

ตรวจสอบความเข้าใจอย่างรวดเร็ว

คุณต้องรวมไฟล์ส่วนหัวใดเพื่อใช้ฟังก์ชันอย่าง sqrt และ pow?

ทบทวน

คุณได้เรียนรู้แล้วว่าฟังก์ชันทางคณิตศาสตร์อยู่ใน math.h ซึ่งคุณรวมด้วย #include <math.h>

ฟังก์ชันเหล่านี้ใช้ชนิด double พิมพ์ด้วย %f และบน Linux อาจต้องใช้แฟล็กการเชื่อมโยง -lm ถัดไปเราจะสำรวจการยกกำลังและรากอย่างละเอียด

คำถามที่พบบ่อย

บทเรียน “รวม math.h” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “รวม math.h” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “รวม math.h”

เชื่อมโยงและใช้ไลบรารีคณิตศาสตร์ คุณปฏิบัติ C Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน C Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “รวม math.h” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน C Academy นี้ได้ไหม

ได้ บทเรียน C Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. รวม math.h
  2. เลขยกกำลังและราก
  3. ตรีโกณมิติและลอการิทึม
  4. การปัดเศษและค่าสัมบูรณ์
← กลับไปที่ C Academy