当前位置:首页 » 编程语言 » c语言求正弦函数公式
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言求正弦函数公式

发布时间: 2022-11-07 13:52:02

⑴ 用c语言编写程序求正弦

好像可以运行啊,你用的是什么编译器?我用visual C++6.0测试通过!
另外你既然用到了getch()函数,最好在开头加一下包含头文件#include <conio.h>

其他的没什么错误了,我已经测试过了,运行结果也是正确的,当然了运行的时候你要注意x是弧度表示的,而不是角度。

⑵ C语言 求sin值

首先,你的测试输入和测试输出的数据是对应不上的,你写错信息了!

输入 3.1415026, 3 的时候,输出才是 -0.07522 。

好了,正确的参考代码如下:

#include<stdio.h>

doublepower(doublex,intn);//计算乘方的函数
doublefact(intn);//计算阶乘的函数

intmain(intargc,charconst*argv[])
{
doublex,s;
intn;
intsign=1;//正负号开关变量,初始状态为正
printf("Pleaseinputadecimalnumberx,apostiveintnumbern: ");
scanf("%lf%d",&x,&n);

for(inti=0;i<=n;i++)
{
s+=sign*power(x,2*i+1)/fact(2*i+1);
sign=-sign;
}

printf("x=%g,n=%d,s=%.5lf ",x,n,s);
return0;
}

//计算x^n
doublepower(doublex,intn)
{
doublep=1;
//这样的循环条件,很简洁。因为函数传入的是形参,也不会对main的变量造成影响。
for(;n--;)
{
p*=x;
}
returnp;
}

//计算n!
doublefact(intn)
{
doublef=1;
//这样的循环条件,很简洁。因为函数传入的是形参,也不会对main的变量造成影响。
for(;n;)
{
f*=n--;
}
returnf;
}

测试截图:(分别测试了角度为 180度、90度、45度的弧度值)

⑶ C语言求正弦函数值

sin(-a)=-sin(a)
cos(-a)=cos(a)
sin(2π-a)=cos(a)
cos(2π-a)=sin(a)
sin(2π+a)=cos(a)
cos(2π+a)=-sin(a)
sin(π-a)=sin(a)
cos(π-a)=-cos(a)
sin(π+a)=-sin(a)
cos(π+a)=-cos(a)
tgA=tanA=sinAcosA
2.两角和与差的三角函数
sin(a+b)=sin(a)cos(b)+cos(α)sin(b)
cos(a+b)=cos(a)cos(b)-sin(a)sin(b)
sin(a-b)=sin(a)cos(b)-cos(a)sin(b)
cos(a-b)=cos(a)cos(b)+sin(a)sin(b)
tan(a+b)=tan(a)+tan(b)1-tan(a)tan(b)
tan(a-b)=tan(a)-tan(b)1+tan(a)tan(b)
3.和差化积公式
sin(a)+sin(b)=2sin(a+b2)cos(a-b2)
sin(a)?sin(b)=2cos(a+b2)sin(a-b2)
cos(a)+cos(b)=2cos(a+b2)cos(a-b2)
cos(a)-cos(b)=-2sin(a+b2)sin(a-b2)
4.积化和差公式 (上面公式反过来就得到了)
sin(a)sin(b)=-12?[cos(a+b)-cos(a-b)]
cos(a)cos(b)=12?[cos(a+b)+cos(a-b)]
sin(a)cos(b)=12?[sin(a+b)+sin(a-b)]
5.二倍角公式
sin(2a)=2sin(a)cos(a)
cos(2a)=cos2(a)-sin2(a)=2cos2(a)-1=1-2sin2(a)
6.半角公式
sin2(a2)=1-cos(a)2
cos2(a2)=1+cos(a)2
tan(a2)=1-cos(a)sin(a)=sina1+cos(a)
7.万能公式
sin(a)=2tan(a2)1+tan2(a2)
cos(a)=1-tan2(a2)1+tan2(a2)
tan(a)=2tan(a2)1-tan2(a2)
8.其它公式(推导出来的 )
a?sin(a)+b?cos(a)=a2+b2sin(a+c) 其中 tan(c)=ba
a?sin(a)-b?cos(a)=a2+b2cos(a-c) 其中 tan(c)=ab
1+sin(a)=(sin(a2)+cos(a2))2
1-sin(a)=(sin(a2)-cos(a2))2
csc(a)=1sin(a)

sec(a)=1cos(a)

⑷ 怎么用c语言编正弦函数计算

  1. 楼上的各位已经提到了scanf输入控制与目标数据类型不匹配的问题,即应改为:scanf("%f",&n);

  2. 另外三楼有提到说角度与弧度的问题,就是说sin()和cos()输入需要保证为弧度,所以你需要转换一下,比如你这个90度就应该约是1.57。

  3. 其实我觉得应该弄清楚的是为什么在输入控制错误的情况下,还会产生这样的结果。

    这是因为输入控制错误,导致n的值没有变化,也就是说后边计算正弦余弦的时候也是计算的n的初始值。你可以在先不改正输入控制的前提下,在输入语句前加一个输出语句,看看n值为多少,如果没猜错的话,应该是0,进而计算的结果也当是正确的。也许你要问了,不是说局部变量自动变量未初始化的话值是随机值么,怎么会是0呢?是的,我也很纳闷,也许适合具体的编译环境有关吧,不同的编译环境对这种情况可能处理会有所不同吧,留待自己去探究咯~

    希望能帮到你~欢迎交流~

⑸ 用C语言求正弦值

1、C语言中要编写sin函数,实质上要利用sin的泰勒公式,然后根据泰勒公式,将其中的每一项进行分解,最后用循环,累加计算出最终结果。


2、下面用for循环实现sin的算法,程序代码如下:

#include<stdio.h>

#include<math.h>


voidmain()


{


inti;


floatx,sum,a,b;//sum代表和,a为分子,b为分母


chars;


printf("pleaseinputx");


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 ",sum);


}

3、 关于上述程序的几点说明:上述程序的计算结果精确到小数点后六位;上述程序运用了sin的泰勒展开式 sin x=x-x^3/3!+x^5/5! ...... ,程序中将sin泰勒公式中的每一项拆成了分子,分母以及每一项前的符号这三项,以便于每一项的累加。

⑹ C语言中正弦函数

doublesin(doublex);

sin参数为double类型,返回值也为double

#include<stdio.h>
#include<math.h>
intmain()
{
constdoublepi=3.1415926;
doubled,e;
scanf("%f",&d);
e=sin(2*pi*d/63.84);
printf("%lf ",e);
return0;
}

⑺ C语言编程求正弦,急需大神!!、

首先 你定义了double类型 而scanf();中用的是%f。
float型对应用%f
double型对应用%lf
这是第一个错误,输入的数值根本就没读进去。
不过这不是唯一的错误,等我继续调试。
。。。
printf()处也用%lf

fabs(sum/s)改为fabs(sum-s)。毕竟是前后两次的结果相减的差小于ε时满足精度。
编译通过,运行正确。

初学做到这样不错了,继续加油!

⑻ 如何用C语言求正弦函数,要求精确到小数点后六位

/*泰勒公式求sin(x)*/
#include<stdio.h>
#include <math.h>
main()
{
double x,s1,e,s=0;
int n=1;
printf("输入x和误差范围e:\n");
scanf("%lf %lf",&x,&e);/*误差上限e要尽量取小,如取e为0.0000001。这里我们将e取为0.000001*/
s1=x;
do
{
s+=s1; /*s1为中间变量*/
s1=-s1*x*x/(n+1)/(n+2);
n+=2;
} while (fabs(s1)>=e);/*fabs为对实数求绝对值的函数*/

printf("x=%lf\nsin(x)=%lf\n",x,s);

}

⑼ 如何用C语言中专门的数学算法实现正弦,余弦函数的计算

头文件包含。math.h
cos :余弦函数
函数原型:double cos(double x);

头文件:#include<math.h>

是否是标准函数:是

函数功能:求x的余弦值,这里,x为弧度。

返回值:计算结果的双精度值。

例程如下: 求cosx。

#include <stdio.h>

#include <math.h>

int main(void)

{

double result;

double x = M_PI;

result = cos(x);

printf("cos(PI) is %lf\n", result);

return 0;

}

sin:正弦函数
函数原型:double sin(double x);

头文件:#include<math.h>

是否是标准函数:是

函数功能:求x的正弦值,这里,x为弧度。

返回值:计算结果的双精度值。

例程如下: 求sinx。

#include <stdio.h>

#include <math.h>

int main(void)

{

float x;

x=M_PI/2;

printf("sin(PI/2)=%f",sin(x));

getchar();

return 0;

}

⑽ C语言正弦函数

sin值就是可以是负数。不过sin不是按角度算的,是按弧度算的。就是sin(PAI)=0;sin(PAI/2)=1。