sinxc語言
while(fabs(y)>=1e-6)//去掉分號
printf("sinx的近似值為%lf,sinx的真實值為%lf",sum,sin(x));//是lf
『貳』 c語言,如何用泰勒公式求sinx
//希望我的回答對你的學習有幫助
#include<math.h>
#include<stdio.h>
intmain(){
intn=1,count=1;
floatx;
doublesum,term;
printf("inputx:");
scanf("%f",&x);
sum=x;
term=x;
do{
term=-term*x*x/((n+1)*(n+2));
sum=sum+term;
n=n+2;
count++;
}while(fabs(term)>=1e-5);//這里可以改精度,我給你的是10的-5次方的精度
printf("sin(x)=%g,count=%d ",sum,count);
return0;
}
『叄』 c語言編程中,sinx怎麼表示
在寫C語言的程序時,在開頭加上一個頭文件math.h即可。
即可直接使用sin(x),特別注意x應該為弧度制,如果不是弧度制需要轉化為弧度制。
添加頭文件方法:#include<math.h>。
(3)sinxc語言擴展閱讀:
在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的值,有我寫的程序,請問錯在哪裡了
for(n=1;;n++)
沒有約束條件死循環
sinx,s沒有賦初值,sinx=0;s=1
#include<stdio.h>
#include<math.h>
void main()
{
int p(int n);
int n;
double i,j,sinx=0;
printf("x的值為0.3時,sinx的值為:");
for(n=1;fabs(sin(0.3)-sinx)>=1e-8;n++)
{
j=p(n);
i=pow(-1,n-1)*pow(0.3,2*n-1)/j;
sinx+=i;
j=0;
}
printf("%.8lf\n",sinx);
}
int p(int n)
{
int i,s=1;
for(i=1;i<=(2*n-1);i++)
s*=i;
return(s);
}
『伍』 用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語言,絕對對你今後學習其他語言有很大幫助。
*************************************************************************/
『陸』 用sinx的泰勒展開式編寫C語言程序
#include<stdio.h>
#include<math.h>
/*計算n的階乘*/
intfactor(intn)
{
if(n==1)
return1;
else
returnfactor(n-1)*n;
}
/*得到分子的值*/
doubleget_numerator(doublex,intorder)
{
returnpow(x,order);//求x^order
}
/*得到分母的值*/
doubleget_denominator(intn)
{
returnfactor(n);//求n的階乘
}
/*獲得第n項的符號,即(-1)^n*/
intget_symbol(intn)
{
if(n%2==0)//n是偶數
return1;
else
return-1;
}
intmain()
{
inti;
doublex;
doublesin_x=0;
doubletmp=0;
printf("pleaseinputthex: ");
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 ",x,sin_x);
return0;
}
/***********************************************************************
學好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的值,望高人指點
你的factorial是一個函數,好象不可以直接乘以一個整數的吧,還有double
factorial(int
n)是不是需要一個返回值呢。if(n==0)
return
1;只是在n=0的時候有返回值,n!=0就沒有了
『玖』 c語言 sinx x積分
#include <sdtio.h>
#include <math.h>
void main()
{
double f(double x);
int i,n;
/*n為區間等分的個數,應盡可能大*/
double a,b,h,s;/*a為積分下限,b為積分上限,h為步長*/
printf("積分下限a:\n");//這里下限為0
scanf("%d",&a);
printf("積分上限為:b\n");//這里上限為1
scanf("%d",&b);
printf("區間等分個數n:\n");
scanf("%d",&n);
h=(b-a)/n; /*步長的計算 */
s=f(a)*h;
for(i=1;i<n;i++)
{
s=s+f(a+i*h)*h;
}
prinf("函數f(x)=sinx/x的積分值為s=%10.6f\n");
/*以下為f(x)被積函數的定義*/
double f(double x)
{
double y;
y=six(x)/x;
return (y);
}
希望對你有所幫助!
}