① 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);
}