本文目錄一覽:
- 1、用C語言程序算sinX的值
- 2、C語言求sinx
- 3、用C語言求正弦值?
- 4、用C語言求sinx的值,望高人指點
- 5、C語言 求sin值
用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
修改了一下。 用 前後項的遞推: c=c*x*x/(float)i/(float)(i-1);
#include stdio.h
#include math.h
int main(){
double x,a,b=1,c=1,sum;
int i,count=1;
scanf(“%lf”,x);
sum=x;
for (i=3; fabs(c)1e-05;i=i+2){
c=c*x*x/(float)i/(float)(i-1);
b= -b;
sum=sum + c*b;
count++;
}
printf(“%.3lf %d\n”,sum,count);
return 0;
}
用C語言求正弦值?
1、C語言中要編寫sin函數,實質上要利用sin的泰勒公式,然後根據泰勒公式,將其中的每一項進行分解,最後用循環,累加計算出最終結果。
2、下面用for循環實現sin的演算法,程序代碼如下:
#includestdio.h
#includemath.h
void main()
{
int i;
float x,sum,a,b; //sum代表和,a為分子,b為分母
char s;
printf(“please input x”);
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\n”,sum);
}
3、 關於上述程序的幾點說明:上述程序的計算結果精確到小數點後六位;上述程序運用了sin的泰勒展開式 sin x=x-x^3/3!+x^5/5! …… ,程序中將sin泰勒公式中的每一項拆成了分子,分母以及每一項前的符號這三項,以便於每一項的累加。
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
儘管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標準規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標準局為C語言制定了一套完整的美國國家標準語法,稱為ANSI C,作為C語言最初的標準。目前2011年12月8日,國際標準化組織(ISO)和國際電工委員會(IEC)發布的C11標準是C語言的第三個官方標準,也是C語言的最新標準,該標準更好的支持了漢字函數名和漢字標識符,一定程度上實現了漢字編程。
用C語言求sinx的值,望高人指點
你的factorial是一個函數,好象不可以直接乘以一個整數的吧,還有double
factorial(int
n)是不是需要一個返回值呢。if(n==0)
return
1;只是在n=0的時候有返回值,n!=0就沒有了
C語言 求sin值
首先,你的測試輸入和測試輸出的數據是對應不上的,你寫錯信息了!
輸入 3.1415026, 3 的時候,輸出才是 -0.07522 。
好了,正確的參考代碼如下:
#include stdio.h
double power(double x, int n); // 計算乘方的函數
double fact(int n); // 計算階乘的函數
int main(int argc, char const *argv[])
{
double x, s;
int n;
int sign = 1; //正負號開關變數,初始狀態為正
printf(“Please input a decimal number x , a postive int number n :\n”);
scanf(“%lf%d”, x, n);
for (int i = 0; i = n; i++)
{
s += sign * power(x, 2 * i + 1) / fact(2 * i + 1);
sign = -sign;
}
printf(“x = %g, n = %d, s = %.5lf \n”, x, n, s);
return 0;
}
//計算x^n
double power(double x, int n)
{
double p = 1;
// 這樣的循環條件,很簡潔。因為函數傳入的是形參,也不會對main的變數造成影響。
for (; n–;)
{
p *= x;
}
return p;
}
// 計算n!
double fact(int n)
{
double f = 1;
// 這樣的循環條件,很簡潔。因為函數傳入的是形參,也不會對main的變數造成影響。
for (; n;)
{
f *= n–;
}
return f;
}
測試截圖:(分別測試了角度為 180度、90度、45度的弧度值)
輸入和輸出語句,你不想要這麼多的提示信息的話,自己修改一下就可以了。
如有幫助,煩請點採納,謝謝!
原創文章,作者:XIAH,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/141624.html