⑴ c語言編程,sinx
在寫C語言的程序時,在開頭加上一個頭文件math.h即可。
即可直接使用sin(x),特別注意x應該為弧度制,如果不是弧度制需要轉化為弧度制。
添加頭文件方法:#include<math.h>。
(1)c語言編程求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
修改了一下。 用 前後項的遞推: 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語言求泰勒公式sinx近似值
你的程序錯誤太多。直接給出按泰勒公式展開求sinx近似值的程序。
#include<stdio.h>
#include<math.h>
intmain()
{
doublei,x,k,s=0;
scanf("%lf",&x);
k=x;
for(i=1;abs(k)>=0.0000001;i++)
{s+=k;k*=-x*x/(i*2*(i*2+1));}
printf("%.3lf",s);
return0;
}
//運行示例截圖:
此時輸入為角度值,例如截圖中輸入30,輸出為0.5。
本題屬於基礎題。很簡單的程序,不要人為復雜化。
⑷ 用C語言求sinx的值,望高人指點
你的factorial是一個函數,好象不可以直接乘以一個整數的吧,還有double
factorial(int
n)是不是需要一個返回值呢。if(n==0)
return
1;只是在n=0的時候有返回值,n!=0就沒有了
⑸ c語言編程sinx
while(fabs(y)>=1e-6)//去掉分號
printf("sinx的近似值為%lf,sinx的真實值為%lf",sum,sin(x));//是lf
⑹ 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語言編寫程序求正弦
好像可以運行啊,你用的是什麼編譯器?我用visual C++6.0測試通過!
另外你既然用到了getch()函數,最好在開頭加一下包含頭文件#include <conio.h>
其他的沒什麼錯誤了,我已經測試過了,運行結果也是正確的,當然了運行的時候你要注意x是弧度表示的,而不是角度。
⑻ C語言 求sin值
首先,你的測試輸入和測試輸出的數據是對應不上的,你寫錯信息了!
輸入 3.1415026, 3 的時候,輸出才是 -0.07522 。
好了,正確的參考代碼如下:
#include<stdio.h>
doublepower(doublex,intn);//計算乘方的函數
doublefact(intn);//計算階乘的函數
intmain(intargc,charconst*argv[])
{
doublex,s;
intn;
intsign=1;//正負號開關變數,初始狀態為正
printf("Pleaseinputadecimalnumberx,apostiveintnumbern: ");
scanf("%lf%d",&x,&n);
for(inti=0;i<=n;i++)
{
s+=sign*power(x,2*i+1)/fact(2*i+1);
sign=-sign;
}
printf("x=%g,n=%d,s=%.5lf ",x,n,s);
return0;
}
//計算x^n
doublepower(doublex,intn)
{
doublep=1;
//這樣的循環條件,很簡潔。因為函數傳入的是形參,也不會對main的變數造成影響。
for(;n--;)
{
p*=x;
}
returnp;
}
//計算n!
doublefact(intn)
{
doublef=1;
//這樣的循環條件,很簡潔。因為函數傳入的是形參,也不會對main的變數造成影響。
for(;n;)
{
f*=n--;
}
returnf;
}
測試截圖:(分別測試了角度為 180度、90度、45度的弧度值)