1. c語言求sinx

#include<stdio.h>
int main() {
double x,sum=0,pre=0;
int n,i=1;
scanf("%lf %d",&x,&n);
pre=x;
for(i=1; i<=2*n-1; i+=2) {
sum+=pre;
pre=-pre*x*x/((i+1)*(i+2));
}
printf("%.8f",sum);
return 0;
}

2. 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;
}

3. c語言求sinx的近似值

#include<stdio.h>
voidmain()
{
floatx,a=0,b,t,n=1,s=1,c=1;
printf("請輸入x的值:");
scanf("%f",&x);
do
{
t=x;
b=1;
a=a+s*t;
s=-s;
t=t*x*x;
b=b*(n+1)*(n+2);
n=n+2;
t=a/b;
c=c+1;
}while(t>1e-5);
printf("%f%f",a,c);
}

邏輯應該是錯了回

網頁鏈接

4. 用C語言求sinx的值,望高人指點

你的factorial是一個函數,好象不可以直接乘以一個整數的吧,還有double
factorial(int
n)是不是需要回一個返回值呢。答if(n==0)
return
1;只是在n=0的時候有返回值,n!=0就沒有了

5. c語言編程sinx

while(fabs(y)>=1e-6)//去掉分號
printf("sinx的近似值為%lf,sinx的真實值為%lf",sum,sin(x));//是lf

6. 用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語言,絕對對你今後學習其他語言有很大幫助。
*************************************************************************/

7. 求sinx的C語言

(fabs(danxiang)<0.00001)

輸入3.14後,這段代碼從來沒成立唄

8. 計算sinx的值,c語言編程問題

#include <iostream>
#include <math.h>
#include <conio.h>

int fact(int n) {
if(n == 0) return 1;
return n * fact(n - 1);
}

double mysin(double x) {
const double PRECISION = 100.;
double sum = x, preTerm = x;
for(int i = 1;; i++) {
double currentTerm = (i % 2 == 1 ? -1 : 1) * pow(x, (2 * i + 1)) / fact(2 * i + 1);
sum += currentTerm;
if(fabs(preTerm + currentTerm) * PRECISION > 1.) preTerm = currentTerm;
else break;
}

return sum;
}

int main(int argc, char* argv) {

std::cout << mysin(3.14 / 2) << std::endl << sin(3.14 / 2) << std::endl;

getch();
return 0;
}

9. 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);
}