1.
成都创新互联一直通过网站建设和网站营销帮助企业获得更多客户资源。 以"深度挖掘,量身打造,注重实效"的一站式服务,以成都网站建设、网站设计、移动互联产品、成都全网营销服务为核心业务。10余年网站制作的经验,使用新网站建设技术,全新开发出的标准网站,不但价格便宜而且实用、灵活,特别适合中小公司网站制作。网站管理系统简单易用,维护方便,您可以完全操作网站资料,是中小公司快速网站建设的选择。
c语言中要编写sin函数,实质上要利用sin的泰勒公式,然后根据泰勒公式,将其中的每一项进行分解,最后用循环,累加计算出最终结果
2.
下面用for循环实现sin的算法,程序代码如下:
#include
#include
void
main()
{
int
i;
float
x,sum,a,b;
//sum代表和,a为分子,b为分母
char
s;
printf("please
input
x");
scanf("%f",x);
s=1;
sum=0;
a=x;
//分母赋初值
b=1;
//分子赋初值
for(i=1;a/b=1e-6;i++)
{
sum=sum+s*a/b;
//累加一项
a=a*x*x;
//求下一项分子
b=b*2*i*(2*i+1);
//求下一项分母
s*=-1;
}
printf("sum=%f\n",sum);
}
3.
关于上述程序的几点说明:上述程序的计算结果精确到小数点后六位;上述程序运用了sin的泰勒展开式
sin
x=x-x^3/3!+x^5/5!
......
,程序中将sin泰勒公式中的每一项拆成了分子,分母以及每一项前的符号这三项,以便于每一项的累加
#includestdio.h
#include math.h
//先定义一个阶乘函数
double fac(double n){
double f=0;
if(n == 1 || n==0)
f =1;
else
f = fac(n-1)*n;
return f;
}
//一个指数函数(次方)
double kvat(double n,double ci){
double chengf=1;
for (int i=1; i=ci; i++) {
chengf = chengf*n;
}
return chengf;
}
double sinus(double x){
int z =-1;
int j =1;
double sin=x;
for (j =3;fabs( kvat(x,j)/fac(j) )0.001 ; j+=2) {
// printf("%lf\n",kvat(x, j));
sin =sin + z*(kvat(x,j)/fac(j));
z = -z;
}
return sin;
}
int main(){
double jd,hudu;
scanf("%lf",jd);
hudu = (jd*M_PI)/180;//这里的M_PI在math库里就是 圆周率pai
printf( "%.3lf",sinus(hudu));
return 0;
}
1、首先,打开VS2019,并且创建一个C语言源文件,会看到如下的页面。
2、鼠标在下图红色圈所示的区域单击一下。
3、之后,再按Enter键,会看到新的一行。
4、在这一行中输入:#includemath.h。
5、接着,在void main()中去定义一个单精度型变量。
6、定义完回车后,输入a=sin(90);注意,90指的是90弧度。
7、再次回车,输入printf("%f",a);。
8、可以按F5键去运行这段程序,会看到如下的结果。即90弧度的正弦值约为0.893997。
输入一个double类型的数,调用c标准库中的sin函数即可。
函数原型:double
sin(double
x);
功能:
函数用来求给定值的正弦值
头文件:#include
math.h
参数:给定的值(弧度)。
返回值:返回-1
至1
之间的计算结果。
示例:
#includestdio.h
#includemath.h
int main()
{
const double PI = 3.1415926;
double d;
scanf("%lf", d);
double result = sin(d*PI/180)+cos(d*PI/180);
printf("%f\n",result);
return 0;
}
首先:程序应该这样改!
#include
#include
main()
{
double
n;
double
b,c;
scanf("%lf",n);
b=sin(n);
c=cos(n);
printf("%.2lf\n%.2lf",b,c);
return
0;
}
其次,这里的n是弧度值,你说的90度应该输入的是pi/2,而不是90,如果希望输入90的话,那就这样改!
#include
#include
main()
{
int
s;
double
n,b,c;
scanf("%d",s);
n=3.1415926*(s/180.0);
b=sin(n);
c=cos(n);
printf("%.2lf\n%.2lf",b,c);
return
0;
}
#include"stdio.h"
#include"math.h"
double mysin(double x)
{double y=x,t=x,t1=x*x;
for(int i=2;fabs(t)1e-10;i+=2)
{t*=-t1/(i*(i+1));
y+=t;
}
return y;
}
int main()
{ double x;
scanf("%lf",x);
printf("%f\n",mysin(x));
return 0;
}