math 头文件的用法
math头文件可以调用一些math标准库里数学函数,比如说fabs()、sqrt()、pow()等等,下面我结合具体的代码实现这些函数的应用。
fabs()函数取绝对值(输入的值是double类型)
abs()输入的值是int类型,输出的也是int型。
比如:输入一个数,输出这个数的绝对值,并保留2位小数。
#include <math.h>
int main()
{
double n;
while (scanf("%lf",&n) != EOF)
{
printf("%.2f\n",fabs(n));
}
return 0;
}
sqrt()函数求数的开平方
比如:求坐标两点的距离
#include <math.h>
int main()
{
double x1,x2,y1,y2;
double d;
while (scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2) != EOF)
{
d = sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
printf("%.2f\n",d);
}
return 0;
}
一起看一下这道题目叭!
题目描述:
数列的定义如下:
数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。
输入:
输入数据有多组,每组占一行,由两个整数n(n<10000)和m(m<1000)组成,n和m的含义如前所述。
输出:
对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数。
#include <math.h>
int main()
{
double n,m,sum;
while (scanf("%lf%lf",&n,&m) != EOF)
{
sum = 0;
for (int i = 0; i < m; i++)
{
sum = sum + n;
n = sqrt(n);
}
printf("%.2f\n",sum);
}
return 0;
}
pow()求n次方
一起再看看这道题叭!
题目描述:
求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个一位的整数。
例如2+22+222+2222+22222(此时共有5个数相加)
输入:
整数a和n(n个数相加,1<= n, a<=9)
输出:
s的值
#include <math.h>
int main()
{
int a;
double n,i,j,sum,pw;
scanf("%d",&a);
scanf("%lf",&n);
j = 0;
sum = 0;
for (i = 0;i < n; i++)
{
pw = pow(10,i);
j = a*pw + j;
sum = sum + j;
}
printf("%.0f",sum);
return 0;
}
math函数库还有好多好多函数的可以调用。
这里的n是double类型。
函数 | 表达式 | 用法 |
---|---|---|
acos() | double(acos(n)) | 返回余弦值 |
log10() | double(log10(n)) | 返回 n 的常用对数(基数为 10 的对数) |
log() | double(log(n)) | 返回 x 的自然对数(基数为 e 的对数) |
floor() | double(floor(n)) | 返回小于或等于 n 的最大的整数值 |
fmod() | double fmod(double x, double y) | 返回 x 除以 y 的余数 |