以下库函数都在头文件<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 人评分
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:1238 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:670 |
printf基础练习2 (C语言代码)浏览:605 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:644 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:700 |
分糖果 (C++代码)浏览:1537 |
大小写转换 (C语言代码)浏览:904 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:941 |
妹子杀手的故事 (C语言代码)浏览:1297 |
WU-printf基础练习2 (C++代码)浏览:2061 |