以下库函数都在头文件<math.h>中
一、求x的n次幂并返回。
pow()库函数 原型声明为:double pow(double x, double n);
pow(a, x):a的x次方,a和x是浮点数,返回值是浮点数(即使a和x都是整数,也会被转换成浮点数,因此整数运算可能损失精度,造成误差)。
二、求n的绝对值。
fabs()库函数 :浮点数(小数)x的绝对值。 原型声明为:double fabs(double x);
abs()库函数:整数x的绝对值。 原型声明为:int ads(int x);
三、求x的算数平方根。
sqrt()库函数 原型声明为:double sqrt(double x);
四、自然对数的x次方。
exp()库函数:e的x次方,x是浮点数,e是自然对数的底数(一个无理数,值为2.71828....)。 原型声明为:double exp(double x);
例如:1.求a*x^2+b*x+c=0,当输入不同的a,b,c时的解
2.求首项为a1,公比为q的等比数列的前n想和
3.求自然对数e的x次方
分析:
(1)若Δ>0,该方程在实数域内有两个不相等的实数根:
(2)若Δ=0,该方程在实数域内有两个相等的实数根:
(3)若Δ<0,该方程在复数域内有两个不相等的共轭复根:
(4)等比数列的前n项和公式:
#include<stdio.h>
#include<math.h> // 引用<math.h>头文件,才可以调用以下的库函数
void qiuji(double a,double b,double c) //自定义了一个方程求解的函数
{
double A,B,M,N;
A=-1*b/(2*a);
M=b*b-4*a*c; //用M代表Δ ;Δ=b^2-4ac
N=sqrt(fabs(M)); //求 Δ绝对值的算术平方根
B=N/(2*a);
if(M>0){ //Δ>0,该方程在实数域内有两个不相等的实数根
printf("X1=%0.3lf X2=%0.3lf\n",A+B,A-B);
}
else if(M==0){ //若Δ=0,该方程在实数域内有两个相等的实数根
printf("X1=X2=%0.3lf\n",A);
}
else { //若Δ<0,该方程在复数域内有两个不相等的共轭复根
printf("X1=%0.3lf+%0.3lfi X2=%0.3lf+%0.3lfi\n",A,B,A,B);
}
}
void sum(int a1,int q,int n) //自定义了一个求等比数列的函数
{
int s;
s=a1*(1-pow(q,n))/(1-q); //等比数列的前n项和公式;调用pow()库函数求q的n次方
printf("%d\n",s);
}
void mi(double x) //自定义了一个求n次幂的函数
{
printf("%0.3lf\n",exp(x)); //调用了exp()库函数,求e的n次幂
}
int main ()
{
double a,b,c;
scanf("%lf %lf %lf",&a,&b,&c); //输入
qiuji(a,b,c); //调用自定义的求解函数
int a1,q,n;
scanf("%d %d %d",&a1,&q,&n); //输入
sum(a1,q,n); //调用求和函数
double x;
scanf("%lf",&x); //输入
mi(x); //调用求幂函数
return 0;
}