① c语言编程,利用泰勒级数求解sinx,输入x值,求解sinx值,保留小数点后6位。
//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
intmain(void){
inti,t;
doublesum,x,tmp,xx;
printf("Inputx(real-360°~+360°)... ");
scanf("%lf",&x);
xx=x,x*=3.1415926535897932/180;printf("%f ",xx);
for(tmp=sum=x,i=2;tmp>1.0E-5;i++){
t=(i<<1)-1;
sum+=i&1?tmp*=(x*x/t/(t-1)):-(tmp*=(x*x/t/(t-1)));
}
printf("sin(%g°)=%.6f ",xx,sum);
return0;
}
② 用C语言程序算sinX的值
#include
#include
/*计算n的阶乘*/
int factor(int n)
{
if(n==1)
return 1;
else
return factor(n-1)*n;
}
/*得到分子的值*/
double get_numerator(double x,int order)
{
return pow(x,order); //求x^order
}
/*得到分母的值*/
double get_denominator(int n)
{
return factor(n); //求n的阶乘
}
/*获得第n项的符号,即(-1)^n*/
int get_symbol(int n)
{
if(n%2 ==0) //n是偶数
return 1;
else
return -1;
}
int main()
{
int i;
double x;
double sin_x=0;
double tmp=0;
printf("please input the x:\n");
scanf("%lf",&x);
for(i=0;;i++)
{
tmp=sin_x; //暂时保存上一步得到的sin值
sin_x += get_numerator(x,2*i+1)/get_denominator(2*i+1)*get_symbol(i);
if(fabs(sin_x-tmp)<1e-6) //精度满足要求
break;
}
printf("sin(%lf)=%lf\n",x,sin_x);
return 0;
} /***********************************************************************
学好c语言,首先应该把语言的语法学好,这也是基础。尤其是注意指针部分,可以说这是c语言的精髓,也是c语言能够直接操作内存的犀利之处。
其次,应该多练代码,并且注意代码的可读性,规范性。
最好,能够亲身用c语言参加某个项目实践,毕竟实践出真知。
至于之后c++或者java的学习,要看自己的发展规划了。不过学好c语言,绝对对你今后学习其他语言有很大帮助。
*************************************************************************/
③ C语言求sinx
#include<stdio.h>
int main()
{ int i,n;
double t,x,y=0;
scanf("%lf%d",&x,&n);
y=t=x;
x*=x;
for(i=3;i<2*n;i+=2)
{t=-t*x/(i*(i-1));
y+=t;
}
printf("%.8lf ",y);
return 0;
}
④ C语言编程计算sinx的近似值
#include"stdio.h"
intmain(intargc,char*argv[]){
doublex,s,t,eps;
inti;
printf("Pleaseenterx&eps(R:0<eps<1)... ");
if(scanf("%lf%lf",&x,&eps)!=2||eps<=0||eps>=1){
printf("Inputerror,exit... ");
return0;
}
printf("sin(%g)≈",x);
for(s=t=x,x*=x,i=1;t>=eps;i++){
(t*=x)/=((i*i<<2)+i+i);
s+=i&1?-t:t;
}
printf("%f ",s);
return0;
}
运行样例:
⑤ c语言编程sinx
while(fabs(y)>=1e-6)//去掉分号
printf("sinx的近似值为%lf,sinx的真实值为%lf",sum,sin(x));//是lf
⑥ 编程 求sinx近似值
#include<stdio.h>
#include<math.h>
int jiecheng(int x);
void main()
{
int i=1,j=1,x;
double sinx=0,sinx1=1,doubleNum;
scanf("%d",&doubleNum);
scanf("%d",&x);
printf("\n");
for(i=1;fabs(sinx-sinx1)>=doubleNum;i+=2)
{
j++;
sinx1=sinx;
sinx=sinx+pow(-1,j)*pow(x,i)/jiecheng(i);
}
printf("%d\n",sinx);
}
int jiecheng(int x) {
if(x==1 || x==0)
return 1;
else
return jiecheng(x-1)*x;
}
⑦ 计算sinx的值,c语言编程问题
#include<iostream.h>
////////////////////////
//计算x^n //
//////////////////////
double fun1(int x,int n)
{ if(n<0)
exit(-1);
else if(n<=1)
return (x);
else
return x*fun1(x,n-1);
}
////////////////////////////////////
///计算 n! /
double fun2(int n)
{
if(n<0)
exit(-1);
else if(n<=1)
return (1);
else
return (n*fun2(n-1));
}
////////////////////////////////////
main()
{
int x,n; double s,f=0;
cout<<"输入x的值 和 n 的值;";
cin>>x>>n;
for(int i=1,j=1;i<=2*n-1;i=i+2,j=-j)
{
s=fun1(x,i)/fun2(i);
f+=j*s;
} cout<<"sin x= "<<f<<endl;
}
⑧ c语言编程求sinx的近似值(泰勒展开)
您好,是这样的:泰勒展开是这个:sinx=x-x^3/3!+x^5/5!-..
下面给出算20项的程序。
#include"math.h"
#include"stdio.h"
void main()
{
double x=0,y=0,z=1,s=1,mynum=0;
int i=1 ,j=0, k=1;
scanf("x=%f",&x);
for(i=1;i<20;i++)
z=1;k=1;
for(j=1;j<=2*i-1;j++)
{
z=x*z;//算j次方
k=k*j;//算阶乘}
s=-j*pow(-1,i);//pow(a,b)是a的b次方
z=z*s/k;
mymun=mynum+z;
}
printf("sinx=x-x^3/3!+x^5/5!-..");
printf("sinx=%f",mynum);
getch();
}
⑨ c语言编程,sinx
在写C语言的程序时,在开头加上一个头文件math.h即可。
即可直接使用sin(x),特别注意x应该为弧度制,如果不是弧度制需要转化为弧度制。
添加头文件方法:#include<math.h>。
(9)编程求sinx扩展阅读:
在C语言家族程序中,头文件被大量使用。一般而言,每个C++/C程序通常由头文件和定义文件组成。头文件作为一种包含功能函数、数据接口声明的载体文件,主要用于保存程序的声明,而定义文件用于保存程序的实现。
C标准函数库(C Standard library)是所有符合标准的头文件(head file)的集合,以及常用的函数库实现程序,例如I/O 输入输出和字符串控制。
不像 COBOL、Fortran 和 PL/I等编程语言,在 C 语言的工作任务里不会包含嵌入的关键字,所以几乎所有的 C 语言程序都是由标准函数库的函数来创建的。
1995年,Normative Addenm 1 (NA1)批准了三个头文件(iso646.h, wchar.h, and wctype.h)增加到C标准函数库中。C99标准增加了六个头文件(complex.h, fenv.h, inttypes.h, stdbool.h, stdint.h, and tgmath.h)。
C11标准中又新增了5个头文件(stdalign.h, stdatomic.h, stdnoreturn.h, threads.h, and uchar.h)。至此,C标准函数库共29个头文件 。
常用的C语言函数库:
<math.h>,<stdio.h>,<stdlib.h>,<time.h>,<string.h>。
使用方法:#include+<函数库名>
参考资料来源:网络-C标准函数库
⑩ C语言初学者请教!编程求sinx近似值,已写程序,求改错!
#include<stdio.h> /*以下代码运行通过*/
#include<math.h>
main()
{
float sum,sinx,x,s;
int i,j; /*j为-1的次方变量*/
printf("Please inter x: \n");
scanf("%f",&x);
i=1;s=1;j=-1;
sum=0;
sinx=sin(x);
printf("%f\n",sinx);
for(i=1;(fabs(sum-sinx))>=0.000001;i=i++) /*你的程序中这句判断有错,应该是大于该精度内的sum值执行for内循环语句。*/
{ s=s*i;
if(i%2!=0) /*当i为奇数时,才执行,把偶数跳过,但s的值仍变化,这样除以的就是阶乘。*/
{ j=-j; /*用j来控制正负号*/
sum+=(double)(pow(x,i)/s)*j;
}
}
printf("sinx=%f\n",sum);
}