Lập trình hiện đang là một ngành “hot” hiện nay. Nó được ứng dụng trong nhiều lĩnh vực, giúp cuộc sống của con người tốt đẹp hơn.
Bạn có rất nhiều ngôn ngữ lập trình để phát triển web, ứng dụng và C là một trong số đó. Thế giới của C đa dạng và phong phú với nhiều hàm khác nhau. Ở bài viết này, hãy cùng nhau tìm hiểu math.h trong C như thế nào nhé!
math.h trong C là hàm toán học. Khi lập trình bằng ngôn ngữ C, bạn có nhiều hàm toán học để lựa chọn. Đúng như tên gọi, chúng cho phép bạn thực hiện các phép tính toán các con số.
Nếu độ lớn của kết quả là quá nhỏ, thì một giá trị 0 được trả về. Trong trường hợp này, errno có thể hoặc không thể được thiết lập thành ERANGE.
Hàm double acos(double x) trong Thư viện C trả về arcos của x (giá trị radian).
Khai báo hàm acos() trong C
Dưới đây là phần khai báo cho hàm acos() trong C:
double acos(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động trong đoạn [-1,+1].
Trả về giá trị:
Hàm này trả về arcos của x, trong đoạn [0, pi] radian.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm acos() trong C:
#include <stdio.h>
#include <math.h>
#define PI 3.14159265
int main ()
{
double x, ret, val;
x = 0.9;
val = 180.0 / PI;
ret = acos(x) * val;
printf("Gia tri arccos cua %lf la bang %lf", x, ret);
return(0);
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:

2. Hàm asin() trong C
Hàm double asin(double x) trong Thư viện C trả về arcsin của x (giá trị radian).
Khai báo hàm asin() trong C
Dưới đây là phần khai báo cho hàm asin() trong C:
double asin(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động trong đoạn [-1,+1].
Trả về giá trị:
Hàm này trả về arcsin của x, trong đoạn [-pi/2,+pi/2] radian.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm asin() trong C:
#include <stdio.h>
#include <math.h>
#define PI 3.14159265
int main ()
{
double x, ret, val;
x = 0.9;
val = 180.0 / PI;
ret = asin(x) * val;
printf("Gia tri arcsin cua %lf la bang %lf", x, ret);
return(0);
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:

3. Hàm atan() trong C
Hàm double atan(double x) trong Thư viện C trả về arctan của x (giá trị radian).
Khai báo hàm atan() trong C
Dưới đây là phần khai báo cho hàm atan() trong C:
double atan(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động.
Trả về giá trị:
Hàm này trả về arctan của x, trong đoạn [-pi/2,+pi/2] radian.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm atan() trong C:
#include <stdio.h>
#include <math.h>
#define PI 3.14159265
int main ()
{
double x, ret, val;
x = 1.0;
val = 180.0 / PI;
ret = atan (x) * val;
printf("Gia tri arctan cua %lf la bang %lf", x, ret);
return(0);
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:

4. Hàm atan2() trong C
Hàm double atan2(doubly y, double x) trong Thư viện C trả về arctan của y/x (giá trị radian).
Khai báo hàm atan2() trong C
Dưới đây là phần khai báo cho hàm atan2() trong C:
double atan2(doubly y, double x)
Tham số:
- x − Đây là giá trị số thực dấu chấm động biểu diễn tọa độ x.
- y − Đây là giá trị số thực dấu chấm động biểu diễn tọa độ y.
Trả về giá trị:
Hàm này trả về arctan của y/x, trong đoạn [-pi,+pi] radian.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm atan2() trong C:
#include <stdio.h>
#include <math.h>
#define PI 3.14159265
int main ()
{
double x, y, ret, val;
x = -7.0;
y = 7.0;
val = 180.0 / PI;
ret = atan2 (y,x) * val;
printf("Gia tri arctan2 cua x = %lf, y = %lf ", x, y);
printf("la bang %lf\n", ret);
return(0);
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:

5. Hàm cos() trong C
Hàm double cos(double x) trong Thư viện C trả về cos của góc x (đo bằng radian).
Khai báo hàm cos() trong C
Dưới đây là phần khai báo cho hàm cos() trong C:
double cos(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động biểu diễn một góc được diễn đạt bằng giá trị radian.
Trả về giá trị:
Hàm này trả về cos của x.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm cos() trong C:
#include <stdio.h>
#include <math.h>
#define PI 3.14159265
int main ()
{
double x, ret, val;
x = 60.0;
val = PI / 180.0;
ret = cos( x*val );
printf("Gia tri cosin cua %lf la bang %lf\n", x, ret);
x = 90.0;
val = PI / 180.0;
ret = cos( x*val );
printf("Gia tri cosin cua %lf la bang %lf\n", x, ret);
return(0);
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:

6. Hàm cosh() trong C
Hàm double cosh(double x) trong Thư viện C trả về hypebolic cosine của x.
Khai báo hàm cosh() trong C
Dưới đây là phần khai báo cho hàm cosh() trong C:
double cosh(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động.
Trả về giá trị:
Hàm này trả về hyperbolic cosine của x.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm cosh() trong C:
#include <stdio.h>
#include <math.h>
int main ()
{
double x;
x = 0.5;
printf("Gia tri hyperbolic cosine cua %lf la bang %lf\n", x, cosh(x));
x = 1.0;
printf("Gia tri hyperbolic cosine cua %lf la bang %lf\n", x, cosh(x));
x = 1.5;
printf("Gia tri hyperbolic cosine cua %lf la bang %lf\n", x, cosh(x));
return(0);
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:

7. Hàm sin() trong C
Hàm double sin(double x) trong Thư viện C trả về sin của góc x (giá trị radian).
Khai báo hàm sin() trong C
Dưới đây là phần khai báo cho hàm sin() trong C:
double sin(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động biểu diễn một góc được diễn đạt bằng giá trị radian.
Trả về giá trị:
Hàm này trả về sin của x.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm sin() trong C:
#include <stdio.h>
#include <math.h>
#define PI 3.14159265
int main ()
{
double x, ret, val;
x = 45.0;
val = PI / 180;
ret = sin(x*val);
printf("Sin cua %lf bang %lf", x, ret);
return(0);
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:

8. Hàm sinh() trong C
Hàm double sinh(double x) trong Thư viện C trả về hyperbolic sine của x.
Khai báo hàm sinh() trong C
Dưới đây là phần khai báo cho hàm sinh() trong C:
double sinh(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động.
Trả về giá trị:
Hàm này trả về hyperbolic sine của x.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm sinh() trong C:
#include <stdio.h>
#include <math.h>
int main ()
{
double x, ret;
x = 0.5;
ret = sinh(x);
printf("Hyperbolic sine cua %lf bang %lf", x, ret);
return(0);
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:

9. Hàm tanh() trong C
Hàm double tanh(double x) trong Thư viện C trả về hyperbolic tang của x.
Khai báo hàm tanh() trong C
Dưới đây là phần khai báo cho hàm tanh() trong C:
double tanh(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động.
Trả về giá trị:
Hàm này trả về hyperbolic tang của x.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm tanh() trong C:
#include <stdio.h>
#include <math.h>
int main ()
{
double x, ret;
x = 0.5;
ret = tanh(x);
printf("Hyperbolic tangent cua %lf bang %lf", x, ret);
return(0);
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:

10. Hàm exp() trong C
Hàm double exp(double x) trong Thư viện C trả về e mũ x.
Khai báo hàm exp() trong C
Dưới đây là phần khai báo cho hàm exp() trong C:
double exp(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động.
Trả về giá trị:
Hàm này trả về ex.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm exp() trong C:
#include <stdio.h>
#include <math.h>
int main ()
{
double x = 0;
printf("e^%lf = %lf\n", x, exp(x));
printf("e^%lf = %lf\n", x+1, exp(x+1));
printf("e^%lf = %lf\n", x+2, exp(x+2));
return(0);
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:

11. Hàm frexp() trong C
Hàm double frexp(double x, int *exponent) trong Thư viện C trả về mantissa (phần định trị) và số nguyên được trỏ tới bởi exponent (số mũ). Giá trị kết quả là x = mantissa * 2 ^ exponent.
Khai báo hàm frexp() trong C
Dưới đây là phần khai báo cho hàm frexp() trong C:
double frexp(double x, int *exponent)
Tham số:
x − Đây là giá trị số thực dấu chấm động để được tính toán.
exponent − Đây là con trỏ tới một đối tượng int nơi mà giá trị exponent được lưu trữ.
Trả về giá trị:
Hàm này trả về phần định trị (mantissa) và số nguyên được trỏ tới bởi exponent.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm frexp() trong C:
#include <stdio.h>
#include <math.h>
int main ()
{
double x = 1024, fraction;
int e;
fraction = frexp(x, &e);
printf("x = %.2lf = %.2lf * 2^%d\n", x, fraction, e);
return(0);
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:

12. Hàm ldexp() trong C
Hàm double ldexp(double x, int exponent) trong Thư viện C trả về x*2exponent.
Khai báo hàm ldexp() trong C
Dưới đây là phần khai báo cho hàm ldexp() trong C:
double ldexp(double x, int exponent)
Tham số:
x − Đây là giá trị số thực dấu chấm động, cũng biểu diễn số chữ số sau dấu phảy có nghĩa.
exponent − Đây là giá trị của exponent.
Trả về giá trị:
Hàm này trả về x * 2 exp
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm ldexp() trong C:
#include <stdio.h>
#include <math.h>
int main ()
{
double x, ret;
int n;
x = 0.65;
n = 3;
ret = ldexp(x ,n);
printf("%f * 2^%d = %f\n", x, n, ret);
return(0);
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:

13. Hàm log() trong C
Hàm double log(double x) trong Thư viện C trả về lnx.
Khai báo hàm log() trong C
Dưới đây là phần khai báo cho hàm log() trong C:
double log(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động.
Trả về giá trị:
Hàm này trả về lnx.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm log() trong C:
#include <stdio.h>
#include <math.h>
int main ()
{
double x, ret;
x = 2.7;
/* tim gia tri cua log(2.7) */
ret = log(x);
printf("log(%lf) = %lf", x, ret);
return(0);
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:

14. Hàm log10() trong C
Hàm double log10(double x) trong Thư viện C trả về log10(x).
Khai báo hàm log10() trong C
Dưới đây là phần khai báo cho hàm log10() trong C:
double log10(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động.
Trả về giá trị:
Hàm này trả về log10(x), với x lớn hơn 0.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm log10() trong C:
#include <stdio.h>
#include <math.h>
int main ()
{
double x, ret;
x = 1000;
/* tim gia tri cua log101000 */
ret = log10(x);
printf("log10(%lf) = %lf\n", x, ret);
return(0);
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:

15. Hàm modf() trong C
Hàm double modf(double x, double *integer) trong Thư viện C trả về phần thập phân của x.
Khai báo hàm modf() trong C
Dưới đây là phần khai báo cho hàm modf() trong C:
double modf(double x, double *integer)
Tham số:
x − Đây là giá trị số thực dấu chấm động.
integer − Đây là con trỏ tới một đối tượng mà phần nguyên được lưu trữ.
Trả về giá trị:
Hàm này trả về phần thập phân của x, có cùng dấu.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm modf() trong C:
#include<stdio.h>
#include<math.h>
int main ()
{
double x, fractpart, intpart;
x = 7.123456;
fractpart = modf(x, &intpart);
printf("Phan nguyen = %lf\n", intpart);
printf("Phan thap phan = %lf \n", fractpart);
return(0);
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:

16. Hàm pow() trong C
Hàm double pow(double x, double y) trong Thư viện C trả về xy.
Khai báo hàm pow() trong C
Dưới đây là phần khai báo cho hàm pow() trong C:
double pow(double x, double y)
Tham số:
- x − Đây là cơ số, là một giá trị số thực dấu chấm động.
- y − Đây là số mũ, là một giá trị số thực dấu chấm động.
Trả về giá trị:
Hàm này trả về xy.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm pow() trong C:
#include <stdio.h>
#include <math.h>
int main ()
{
printf("9.0 ^ 3 = %lf\n", pow(9.0, 3));
printf("4.05 ^ 2.98 = %lf", pow(4.05, 2.98));
return(0);
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:

17. Hàm sqrt() trong C
Hàm double sqrt(double x) trong Thư viện C trả về căn bậc hai của x.
Khai báo hàm sqrt() trong C
Dưới đây là phần khai báo cho hàm sqrt() trong C:
double sqrt(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động.
Trả về giá trị:
Hàm này trả về căn bậc hai của x.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm sqrt() trong C:
#include <stdio.h>
#include <math.h>
int main ()
{
printf("Can bac hai cua %lf bang %lf\n", 4.0, sqrt(4.0) );
printf("Can bac hai cua %lf bang %lf\n", 5.0, sqrt(5.0) );
return(0);
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:

18. Hàm ceil() trong C
Hàm double ceil(double x) trong Thư viện C trả về giá trị nguyên nhỏ nhất lớn hơn hoặc bằng x.
Khai báo hàm ceil() trong C
Dưới đây là phần khai báo cho hàm ceil() trong C:
double ceil(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động.
Trả về giá trị:
Trả về giá trị nguyên nhỏ nhất không nhỏ hơn x.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm ceil() trong C:
#include <stdio.h>
#include <math.h>
int main ()
{
float val1, val2, val3, val4;
val1 = 1.6;
val2 = 1.2;
val3 = 2.8;
val4 = 2.3;
printf ("Gia tri cua ceil(%.1f) = %.1lf\n", val1, ceil(val1));
printf ("Gia tri cua ceil(%.1f) = %.1lf\n", val2, ceil(val2));
printf ("Gia tri cua ceil(%.1f) = %.1lf\n", val3, ceil(val3));
printf ("Gia tri cua ceil(%.1f) = %.1lf\n", val4, ceil(val4));
return(0);
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:

19. Hàm fabs() trong C
Hàm double fabs(double x) trong Thư viện C trả về giá trị tuyệt đối của x.
Khai báo hàm fabs() trong C
Dưới đây là phần khai báo cho hàm fabs() trong C:
double fabs(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động.
Trả về giá trị:
Hàm này trả về giá trị tuyệt đối của x.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm fabs() trong C:
#include <stdio.h>
#include <math.h>
int main ()
{
int a, b;
a = 345;
b = -345;
printf("Tri tuyet doi: |%d| = %lf\n", a, fabs(a));
printf("Tri tuyet doi: |%d| = %lf\n", b, fabs(b));
return(0);
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:

20. Hàm floor() trong C
Hàm double floor(double x) trong Thư viện C trả về giá trị nguyên lớn nhất nhỏ hơn hoặc bằng x.
Khai báo hàm floor() trong C
Dưới đây là phần khai báo cho hàm floor() trong C:
double floor(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động.
Trả về giá trị:
Hàm này trả về số nguyên lớn nhất không lớn hơn x.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm floor() trong C:
#include <stdio.h>
#include <math.h>
int main ()
{
float val1, val2, val3, val4;
val1 = 1.6;
val2 = 1.2;
val3 = 2.8;
val4 = 2.3;
printf("Gia tri cua floor(%.1f) = %.1lf\n", val1, floor(val1));
printf("Gia tri cua floor(%.1f) = %.1lf\n", val2, floor(val2));
printf("Gia tri cua floor(%.1f) = %.1lf\n", val3, floor(val3));
printf("Gia tri cua floor(%.1f) = %.1lf\n", val4, floor(val4));
return(0);
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:

21. Hàm fmod() trong C
Hàm double fmod(double x, double y) trong Thư viện C trả về phần dư của phép chia x/y.
Khai báo hàm fmod() trong C
Dưới đây là phần khai báo cho hàm fmod() trong C:
double fmod(double x, double y)
Tham số:
x − Đây là giá trị số thực dấu chấm động đóng vai trò là tử số.
y − Đây là giá trị số thực dấu chấm động đóng vai trò là mẫu số.
Trả về giá trị:
Hàm này trả về phần dư của phép chia x/y.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm fmod() trong C:
#include <stdio.h>
#include <math.h>
int main ()
{
float a, b;
int c;
a = 9.2;
b = 3.7;
c = 2;
printf("Phan du cua phep chia %f / %d la %lf\n", a, c, fmod(a,c));
printf("Phan du cua phep chia %f / %f la %lf\n", a, b, fmod(a,b));
return(0);
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:

Theo Tutorialspoint