魔客


私信TA

用户名:dotcpp0681729

访问量:195

签 名:

等  级
排  名 5912
经  验 1480
参赛次数 0
文章发表 2
年  龄 21
在职情况 学生
学  校 山东大学
专  业 人工智能

  自我简介:

以下库函数都在头文件<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,该方程在实数域内有两个不相等的实数根:

x=[-b±(b^2-4ac)^(1/2)]/2a


(2)若Δ=0,该方程在实数域内有两个相等的实数根:

x1=x2=-b/2a


(3)若Δ<0,该方程在复数域内有两个不相等的共轭复根:

        x={-b±[(4ac-b^2)^(1/2)]i}/2a


(4)等比数列的前n项和公式:

Sn=a1(1-q^n)/(1-q)

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


 

0.0分

1 人评分

  评论区

  • «
  • »