รวม 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ