開頭必須有一個數(shù)學函數(shù)庫?#includemath.h
成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于網(wǎng)站制作、成都做網(wǎng)站、衛(wèi)輝網(wǎng)絡推廣、微信平臺小程序開發(fā)、衛(wèi)輝網(wǎng)絡營銷、衛(wèi)輝企業(yè)策劃、衛(wèi)輝品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學生創(chuàng)業(yè)者提供衛(wèi)輝建站搭建服務,24小時服務熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
然后一般常用的
sin(x)
cos(x)
tan(x)
其中的x必須要以弧度為單位。如果以“度”為單位,比如說求30度的正弦值,要用
sin(x*180/3.1415926)的形式
arcsin(x)
arccos(x)
arctan(x)
arccot(x)
以上四個則是相應的反三角函數(shù),函數(shù)值的單位也是弧度。若要求arctan(1)的度數(shù),要用以下的形式:?arctan(1)*180/3.1415926
擴展資料
C語言的三角函數(shù)庫采用的單位都是弧度,如果要使用角度,就必須轉(zhuǎn)換,從角度轉(zhuǎn)換成弧度,或者是重寫一個三角函數(shù)庫。
在調(diào)用三角函數(shù)之前先把角度換算成弧度,調(diào)用反三角函數(shù)之后把弧度換算成角度就可以了??梢杂?pi = 4.0 * atan(1) 算出pi,用 a = d /180.0*pi 轉(zhuǎn)換角度到弧度。
例如: sin(45 /180.0*pi); 就是計算的sin45。
參考資料:c語言 - 百度百科
包含頭文件 math.h
反3角函數(shù)有 acos(double),asin(double),atan(double),atan(double,double),
返回值 double 型,弧度值。轉(zhuǎn)角度要 *180.0/3.1416
例如:
#include stdio.h
#includemath.h
int main()
{
double x=0.5;
printf("acos=%.2lf degrees\n",acos(x) * 180.0/3.1416);
printf("asin=%.2lf degrees\n",asin(x) * 180.0/3.1416);
printf("atan=%.2lf degrees\n",atan(x) * 180.0/3.1416);
printf("atan2=%.2lf degrees\n",atan2(1.0,2.0) * 180.0/3.1416);
return 0;
}
sacnf("%s",a);這個語句根本沒的用。就算輸入到a,也只會被當成字符串來處理。
printf("%f",j);這個語句不知道是不是你寫錯了,j前面沒逗號。
你想想反余切的公式就可以編程 出來了,這個東西最好要自己實踐,別人幫你只是指導你,對你編程沒有實際的好處。
Q1=(int)acos((abs(xe-x)/r));
Q2=(int)acos((abs(x-x0))/r);
改成
Q1=(int)acos((fabs(xe-x)/r));
Q2=(int)acos((fabs(x-x0))/r);
因為原來的acos里面的 都是整數(shù)相除,結(jié)果是一個整數(shù),發(fā)生截斷了。fabls返回的是double,再相除就沒有問題。
這里沒有現(xiàn)成的三角函數(shù),你任務要求的精度是多少?把所有可能的θ值代入,在電腦里算出這個式子的所有結(jié)果,然后把結(jié)果做成數(shù)據(jù)表,在程序里做個子程序查表就可以了,速度比算個乘法都快。
用自帶的函數(shù)庫
#include?stdio.h
#include?math.h
#define?M_PI?3.14159265358979323846
int?main(void)
{
printf("%.4f\n",?sin(M_PI?/?2));
printf("%.4f\n",?cos(M_PI?/?3));
printf("%.4f\n",?asin(1.00));
printf("%.4f\n",?acos(0.50));
printf("%.4f\n",?tan(M_PI?/?4));
printf("%.4f\n",?atan(1.00));
return?0;
}