要用弧度計(jì)算的,另外,pintf語句中,應(yīng)該是"%lf",不是"f%"
10年積累的成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有舞鋼免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
sin()是三角函數(shù),參數(shù)使用的是弧度,不是度。
asin()才是反三角函數(shù)。
資料 :
NAME
asin, asinf, asinl - arc sine function
SYNOPSIS
#include math.h
double asin(double x);
float asinf(float x);
long double asinl(long double x);
Link with -lm.
DESCRIPTION
The asin() function calculates the arc sine of x; that is the value
whose sine is x. If x falls outside the range -1 to 1, asin() fails
and errno is set.
RETURN VALUE
The asin() function returns the arc sine in radians and the value is
mathematically defined to be between -PI/2 and PI/2 (inclusive).
其實(shí)很簡(jiǎn)單,sin這個(gè)函數(shù)的參數(shù),是弧度數(shù),不是角度數(shù)。比如你想求50度角的正弦,就必須轉(zhuǎn)化成50度的弧度數(shù),再算,保證沒錯(cuò),
問題有很多,第一個(gè)
printf("enter 三角函數(shù)名:");
scanf("%s",j);
輸入字符串時(shí)數(shù)組名本身就代表地址,因此不需要加取地址符號(hào),直接攜程scanf("%s",j);就行了。
第二:if(j=="sin")這里比較字符串的值錯(cuò)了,應(yīng)該寫成if( 0 == strcmp(j, "sin") ),因?yàn)閖是數(shù)組名,代表的是地址,而且是一個(gè)棧內(nèi)存中的地址,“sin”也表示地址,但是是常量區(qū)的地址,這兩個(gè)地址肯定是不相等的嘛,因此比較字符串是否相等應(yīng)該采用函數(shù)strcmp系列函數(shù)。
strncmp(); 比較兩個(gè)字符串的前n個(gè)字符是否相等,區(qū)分大小寫
strncasecmp();比較兩個(gè)字符串的前n個(gè)字符項(xiàng)否相等,忽略大小寫
strcasecmp();比較兩個(gè)字符串是否相等,忽略大小寫
第三個(gè)問題:為使得代碼更加嚴(yán)謹(jǐn),數(shù)組j最好定義長一點(diǎn),因?yàn)樽址慕Y(jié)束標(biāo)志為‘\0’而你之定義3位,則'\0'沒有空間存儲(chǔ),所以很容易出現(xiàn)各種意想不到的問題。
在Linux下
gcc編譯時(shí)
默認(rèn)是不會(huì)加入數(shù)學(xué)函數(shù)庫的
所以 你要使用math.h中的函數(shù)
除了要Include以外
編譯的時(shí)候還要加上-lm
比如
gcc test.c -o my.out -lm
你的程序沒有問題
vc6.0 編譯
q=(sin(x*PI/180)+sin(y*PI/180))/tan(z*PI/180);處出現(xiàn)
warning:“e:\c\bhj\bhj.cpp(16) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data”
這是因?yàn)閟in 和 tan的 返回值是雙精度double類型。把它賦值給 float q,就會(huì)丟失數(shù)據(jù)。
但是計(jì)算結(jié)果是基本正確的。如果想更精確計(jì)算 就把所有的 float 全部改成 double
#include?stdio.h
#include?math.h
int?main()
{
double?n;?//sin?cos是函數(shù),不能定義成變量
scanf("%lf",n);
n=sin(n);?//求n的sin()值,并返回給n
printf("%lf\n",n);//輸出n
return?0;
}
新聞名稱:c語言三角函數(shù)無法識(shí)別 c語言三角函數(shù)無法識(shí)別怎么辦
鏈接地址:http://m.kartarina.com/article10/dodssgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、標(biāo)簽優(yōu)化、搜索引擎優(yōu)化、做網(wǎng)站、品牌網(wǎng)站制作、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)