1. 誰能告訴我c語言中數學函數怎麼用啊
#include<stdio.h>
#include<math.h>
int
main()
{
double
a,b,c,x;
scanf("%lf%lf%lf",&a,&b,&c);
x=b*b-4*a*c;
if(x>0&&x==0)
{
if(x>0)
printf("%.2lf\n%.2lf",(-b+sqrt(x))/(2*a),(-b-sqrt(x)/(2*a)));
if(x==0)
printf("%.2lf",(-b+sqrt(x))/(2*a));
}
else
printf("No
answer!");
return
0;
}
這是改過的程序
第一:if(x>=0)
這種形式在c語言中是錯誤的
只能用邏輯運算符
&&
!
||
來表示連接關系
第二:弄清楚在邏輯運算中,優先順序的關系
(-b+sqrt(double
x))/2*a,(-b-sqrt(double
x))/2*a)
(-b+sqrt(double
x))/2*a)
中
2*a
用()括起來
在x前面不用再加其數據類型
除非是你想強制轉換數據類型
多看看書,多做些,就好了!明白vc的報錯,從第一個開始上下找錯誤。。。個人經驗。。。
2. C語言函數的數學函數
所在函數庫為math.h、stdio.h、string.h、float.h
int abs(int i) 返回整型參數i的絕對值
double cabs(struct complex znum) 返回復數znum的絕對值
double fabs(double x) 返回雙精度參數x的絕對值
long labs(long n) 返回長整型參數n的絕對值
double exp(double x) 返回指數函數ex的值
double frexp(double value,int *eptr) 返回value=x*2n中x的值,n存貯在eptr中
double ldexp(double value,int exp); 返回value*2exp的值
double log(double x) 返回logex的值
double log10(double x) 返回log10x的值
double pow(double x,double y) 返回x^y的值
double pow10(int p) 返回10^p的值
double sqrt(double x) 返回+√x的值
double acos(double x) 返回x的反餘弦cos-1(x)值,x為弧度
double asin(double x) 返回x的反正弦sin-1(x)值,x為弧度
double atan(double x) 返回x的反正切tan-1(x)值,x為弧度
double atan2(double y,double x) 返回y/x的反正切tan-1(x)值,y的x為弧度
double cos(double x) 返回x的餘弦cos(x)值,x為弧度
double sin(double x) 返回x的正弦sin(x)值,x為弧度
double tan(double x) 返回x的正切tan(x)值,x為弧度
double cosh(double x) 返回x的雙曲餘弦cosh(x)值,x為弧度
double sinh(double x) 返回x的雙曲正弦sinh(x)值,x為弧度
double tanh(double x) 返回x的雙曲正切tanh(x)值,x為弧度
double hypot(double x,double y) 返回直角三角形斜邊的長度(z),
x和y為直角邊的長度,z2=x2+y2
double ceil(double x) 返回不小於x的最小整數
double floor(double x) 返回不大於x的最大整數
void srand(unsigned seed) 初始化隨機數發生器
int rand() 產生一個隨機數並返回這個數
double poly(double x,int n,double c[])從參數產生一個多項式
double modf(double value,double *iptr)將雙精度數value分解成尾數和階
double fmod(double x,double y) 返回x/y的余數
double frexp(double value,int *eptr) 將雙精度數value分成尾數和階
double atof(char *nptr) 將字元串nptr轉換成浮點數並返回這個浮點數
double atoi(char *nptr) 將字元串nptr轉換成整數並返回這個整數
double atol(char *nptr) 將字元串nptr轉換成長整數並返回這個整數
char *ecvt(double value,int ndigit,int *decpt,int *sign)
將浮點數value轉換成字元串並返回該字元串
char *fcvt(double value,int ndigit,int *decpt,int *sign)
將浮點數value轉換成字元串並返回該字元串
char *gcvt(double value,int ndigit,char *buf)
將數value轉換成字元串並存於buf中,並返回buf的指針
char *ultoa(unsigned long value,char *string,int radix)
將無符號整型數value轉換成字元串並返回該字元串,radix為轉換時所用基數
char *ltoa(long value,char *string,int radix)
將長整型數value轉換成字元串並返回該字元串,radix為轉換時所用基數
char *itoa(int value,char *string,int radix)
將整數value轉換成字元串存入string,radix為轉換時所用基數
double atof(char *nptr) 將字元串nptr轉換成雙精度數,並返回這個數,錯誤返回0
int atoi(char *nptr) 將字元串nptr轉換成整型數, 並返回這個數,錯誤返回0
long atol(char *nptr) 將字元串nptr轉換成長整型數,並返回這個數,錯誤返回0
double strtod(char *str,char **endptr)將字元串str轉換成雙精度數,並返回這個數,
long strtol(char *str,char **endptr,int base)將字元串str轉換成長整型數,
並返回這個數,
int matherr(struct exception *e)
用戶修改數學錯誤返回信息函數(沒有必要使用)
double _matherr(_mexcep why,char *fun,double *arg1p,
double *arg2p,double retval)
用戶修改數學錯誤返回信息函數(沒有必要使用)
unsigned int _clear87() 清除浮點狀態字並返回原來的浮點狀態
void _fpreset() 重新初使化浮點數學程序包
unsigned int _status87() 返回浮點狀態字
3. c語言中math頭文件中的函數有哪些
數學函數庫,一些數學計算的公式的具體實現是放在math.h里,具體有:
1 三角函數
double sin (double);
double cos (double);
double tan (double);
2 反三角函數
double asin (double); 結果介於[-PI/2, PI/2]
double acos (double); 結果介於[0, PI]
double atan (double); 反正切(主值), 結果介於[-PI/2, PI/2]
double atan2 (double, double); 反正切(整圓值), 結果介於[-PI/2, PI/2]
3 雙曲三角函數
double sinh (double);
double cosh (double);
double tanh (double);
4 指數與對數
double exp (double);
double sqrt (double);
double log (double); 以e為底的對數
double log10 (double);
double pow(double x, double y)//計算以x為底數的y次冪
5 取整
double ceil (double); 取上整
double floor (double); 取下整
6 絕對值
double fabs (double);
double cabs(struct complex znum) //求復數的絕對值
7 標准化浮點數
double frexp (double f, int *p); 標准化浮點數, f = x * 2^p, 已知f求x, p ( x介於[0.5, 1] )
double ldexp (double x, int p); 與frexp相反, 已知x, p求f
8 取整與取余
double modf (double, double*); 將參數的整數部分通過指針回傳, 返回小數部分
double fmod (double, double); 返回兩參數相除的余數
9其他
double hypot(double x, double y);//已知直角三角形兩個直角邊長度,求斜邊長度
double ldexp(double x, int exponent);//計算x*(2的exponent次冪)
double poly(double x, int degree, double coeffs [] )//計算多項式
nt matherr(struct exception *e)//數學錯誤計算處理程序
source: 《C & C++ Code Capsules》
4. c語言中常用自定義數學函數
對,可以做自定義函數,方便後續調用,
可以在math.h的頭文件下面,也可以自己定義
5. C語言常用的函數有哪些
C語言庫函數,常用庫函數有:
1、scanf格式輸入函數
2、printf格式輸出函數
3、systemdos命令函數
4、sort排序
5、main主函數
6、fgets文件讀取字元串函數
7、fputs文件寫入字元串函數
8、fscanf文件格式讀取函數
9、fprintf文件格式寫入函數
10、fopen打開文件函數
11、getchar輸入字元函數
12、putchar輸出字元函數
13、malloc動態申請內存函數
14、free釋放內存函數
15、abs求絕對值數學函數
16、sqrt求平方根數學函數
(5)c語言數學函數擴展閱讀
語言組成:
1、數據類型
C的數據類型包括:整型、字元型、實型或浮點型(單精度和雙精度)、枚舉類型、數組類型、結構體類型、共用體類型、指針類型和空類型。
2、常量與變數
常量其值不可改變,符號常量名通常用大寫。
變數是以某標識符為名字,其值可以改變的量。標識符是以字母或下劃線開頭的一串由字母、數字或下劃線構成的序列,請注意第一個字元必須為字母或下劃線,否則為不合法的變數名。變數在編譯時為其分配相應存儲單元。
3、數組
如果一個變數名後面跟著一個有數字的中括弧,這個聲明就是數組聲明。字元串也是一種數組。它們以ASCII的NULL作為數組的結束。要特別注意的是,方括內的索引值是從0算起的。
4、指針
如果一個變數聲明時在前面使用 * 號,表明這是個指針型變數。換句話說,該變數存儲一個地址,而 *(此處特指單目運算符 * ,下同。C語言中另有 雙目運算符 *) 則是取內容操作符,意思是取這個內存地址里存儲的內容。指針是 C 語言區別於其他同時代高級語言的主要特徵之一。
6. C語言中的數學函數的書寫
D
A)sqrt(abs(x*x/180) 這里少「)」
B)sqrt(abs(sinx*3.14/180))) 這里多了「)」
C)sqrt(sinx) sin 是系統函數不能直接和變數一起使用
D)sqrt(fabs(sin(x*3.14/180))) 如果 fabs 是合法函數的話。這個沒有問題
7. C語言中全部可用的數學函數有哪些
三角函數
反三角函數
雙曲三角函數
指數與對數
取整
絕對值
標准化浮點數
取整與取余
8. C語言的函數和數學函數是什麼意思
1、函數就是一系列C語句的集合,為了完成某個會重復使用的特定功能。需要該功能的時候,直接調用該函數即可,不用每次都堆疊一大堆的代碼。需要修改該功能的時候,也只要修改和維護這一個函數即可。
2、C語言中,數學函數是函數的一種。指專門進行數學運算的函數,一般都在<math.h>頭文件下,數學函數列表:
1)int abs(int i); 求整數的絕對值。
2)long labs(long n); 求長整型數的絕對值。
3)double fabs(double x); 求實數的絕對值。
4)double floor(double x); 求不大於x的最大整數,它相當於數學函數[x]。
5)double ceil(double x); 求不小於x的最小整數。
6)double sqrt(double x); 求x的平方根。
7)double log10(double x); 求x的常用對數。
8)double log(double x); 求x的自然對數。
9)double exp(double x); 求歐拉常數e的x次方。
10)double pow10(int p); 求10的p次方。
11)double pow(double x, double y); 求x的y次方。
12)double sin(double x); 正弦函數。
13)double cos(double x); 餘弦函數。
14)double tan(double x); 正切函數。
15)double asin(double x); 反正弦函數。
16)double acos(double x); 反餘弦函數。
17)double atan(double x); 反正切函數。
18)double atan2(double x); 反正切函數2。
9. c語言數學函數庫哪裡有
C語言中之數學函數
C語言提供了以下的數學函數,要使用這些函數時,在程序文件頭必須加入:
#include <math.h>
編譯時,必須加上參數「-lm」(表示連結至數學函式庫),例如「gcc -lm test.c」。
函數之自變數與傳回之值型別見自變數或函數前之型別宣告。
函數已經在「math.h」或其它標頭檔宣告過了,因此在使用時不必再加型別宣告,例如「y=sin(x);」,不用寫成「y=double sin(double x);」。
函數說明
double sin(double x)
x 的正弦函數值
double cos(double x)
x 的餘弦函數值
double tan(double x)
x 的正切函數值
double asin(double x)
x 的反正弦函數值 sin-1x,x的值在 [-1,1] 之間,傳回的值在 [-p/2,p/2] 之間
double acos(double x)
x 的反餘弦函數值cos-1x,x的值在 [-1,1] 之間,傳回的值在 [-p/2,p/2] 之間
double atan(double x)
x 的反正切函數值tan-1x,傳回的值在 [-p/2,p/2] 之間
double atan2(double y, double x)
y/x 的反正切函數值tan-1(y/x),傳回的值在 [-p, p] 之間
double sinh(double x)
x 的雙曲正弦函數值
double cosh(double x)
x 的雙曲餘弦函數值
double tanh(double x)
x 的雙曲正切函數值
double exp(double x)
x 的指數函數 ex
double log(double x)
x 的自然對數 ln(x),x > 0
double log10(double x)
x 底數為 10 的對數,log10x,x > 0
double pow(double x, double y)
x 的 y 次方 xy
double sqrt(double x)
x 的根號值 √x
double ceil(double x)
不小於 x 的最小整數(但其型別為 double)
double floor(double x)
不大於 x 的最大整數(但其型別為 double)
int abs(int x)
整數 x 的絕對值 |x|
long labs(long x)
長整數 x 的絕對值 |x|
double fabs(double x)
實數 x 的絕對值 |x|
double ldexp(double x, int n)
x?2n
double fmod(double x, double y)
x/y 的浮點數余數,符號與 x 相同
範例:各個數學函式的使用方法
#include <stdio.h>
#include <math.h>
#define PI 3.14159
int main(void)
{
double x,y,z;
int n;
x=4.0;
y=sqrt(x);
printf("x=%fty=%fn",x,y);
x=PI/4;
y=sin(x);
printf("x=%fty=%fn",x,y);
x=2.0;
y=3.0;
z=pow(x,y);
printf("x=%fty=%ftz=%fn",x,y,z);
x=1.5;
n=4;
y=ldexp(x,n);
printf("x=%ftn=%dty=%fn",x,n,y);
return 0;
}
10. C語言函數和數學函數一樣嗎
當然不一樣了。
程序設計中的函數,包括c語言,都是對一段特定功能代碼段的封裝,需要使用的時候直接調用。
而數學中的函數表示每個輸入值對應唯一輸出值的一種對應關系。