『壹』 c語言編程中如何輸入冪次方
1、頭文件:#include
2、原型:
double pow(double x, double y);
pow() 函數用來求 x 的 y 次冪(次方)
pow()用來計算以x 為底的 y 次方值,然後將結果返回。設返回值為 ret,則 ret = xy。
3、舉例如下:
double a = pow(4, 2); // 計算4的平方
4、可能導致錯誤的情況:
如果底數 x 為負數並且指數 y 不是整數,將會導致 domain error 錯誤。
如果底數 x 和指數 y 都是 0,可能會導致 domain error 錯誤,也可能沒有;這跟庫的實現有關。
如果底數 x 是 0,指數 y 是負數,可能會導致 domain error 或 pole error 錯誤,也可能沒有;這跟庫的實現有關。
如果返回值 ret 太大或者太小,將會導致 range error 錯誤。
錯誤代碼:
如果發生 domain error 錯誤,那麼全局變數 errno 將被設置為 EDOM;
如果發生 pole error 或 range error 錯誤,那麼全局變數 errno 將被設置為 ERANGE。
注意:1、使用pow函數時,需要將頭文件#include包 含進源文件中。
2、用pow(x,y)的話要用到math.h頭文件。
(1)c語言中的0次冪的值擴展閱讀:
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);以10為底的對數 double pow(double x, double y);計算以x為底數的y次冪 float powf(float x, float y); 功能與pow一致,只是輸入與輸出皆為浮點數
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);數學錯誤計算處理程序
『貳』 C語言中的冪函數··
extern float pow(float x, float y)
用法:#include <math.h>
功能:計算x的y次冪。
說明:x應大於零,返回冪指數的結果。
舉例:
// pow.c
#include <stdlib.h>
#include <math.h>
#include <conio.h>
void main()
{
printf("4^5=%f",pow(4.,5.));
getchar();
}
相關函數:pow10
『叄』 關於C語言中n次冪函數的用法
#include<stdio.h>
int power(int n,int p);
void main()
{ int S[8];
int i=0;
int n=2;
printf("The results is: ");
for(i=0;i<8;i++)
{
S[i]=power(n,i+1);//調用函數
printf("%d ",S[i]);
}
printf("That's all ");
}
int power(int n,int p)
{
int pow=1;
int i;
for(i=0;i<=p;i++)
pow*=n;
return pow;
}
在調用:S[i]=power(n,i); 之前,i未初始化,可以手動輸出來看一下,值結果是隨機的,並不一定是0。
編譯會提示:Warning: Possible use of 'i' before definition in function main在do{}while;中,開關i值並未改變,若i<8成立,那麼程序就會變成死循環。
一開始的那個i沒有初始化,s[i]不知道用哪裡的內存了。還有每次循環後記得i++。
(3)c語言中的0次冪的值擴展閱讀:
注意事項
pow() 函數用來求 x 的 y 次冪(次方),其原型為:double pow(double x, double y);
pow()用來計算以x 為底的 y 次方值,然後將結果返回。設返回值為 ret,則 ret = xy。
可能導致錯誤的情況:
如果底數 x 為負數並且指數 y 不是整數,將會導致 domain error 錯誤。
如果底數 x 和指數 y 都是 0,可能會導致 domain error 錯誤,也可能沒有;這跟庫的實現有關。
如果底數 x 是 0,指數 y 是負數,可能會導致 domain error 或 pole error 錯誤,也可能沒有;這跟庫的實現有關。
如果返回值 ret 太大或者太小,將會導致 range error 錯誤。
錯誤代碼:
如果發生 domain error 錯誤,那麼全局變數 errno 將被設置為 EDOM;
如果發生 pole error 或 range error 錯誤,那麼全局變數 errno 將被設置為 ERANGE。
Math.pow(底數,幾次方)
如:double a=2.0;
double b=3.0;
double c=Math.pow(a,b);
就是2的三次方是多少;
c最終為8.0;
『肆』 C語言中exp0次方是多少
除了零,任何實數的0次方都是1
『伍』 C語言問題
double power(int a,int b)
{
if(a==0) return 0;
if(b==0) return 1;
else if(b>0) return(a*power(a,b-1));
else return(1.0/a*power(a,b+1));
}
int main(void)
{
printf("power(3,3)=%f\n", power(3,3));
printf("power(0,3)=%f\n", power(0,3));
printf("power(3,0)=%f\n", power(3,0));
printf("power(4,-2)=%f\n", power(4,-2));
}
『陸』 c語言遞歸函數實現某數次冪的運算
long
double
_pow_i(
long
double
_X,
int
_Y
)
{
if
(
!_Y
)
return
1;
//
次冪為0的情況
if
(
!(_Y-1)
)
return
_X;
//
當_Y
=
1的情況則返回結果_X
return
_X
*
_pow_i(
_X,
abs(_Y)-1
);
//
每一步返回
_X
*
上一次的乘積,_Y
減1計數
}
long
double
_pow(
long
double
_X,
int
_Y
)
{
long
double
_Z
=
_pow_i(
_X,
_Y
);
return
_Y
<
0
?
1
/
_Z
:
_Z;
}
因為寫在一起的話不好解釋,所以分開正負的情況,_pow就是判斷次冪是否為負數,是負數就等於1/那個數個正次冪。
『柒』 c語言中怎麼表示一個數的零次冪 還是 直接寫一
一個不為0的數的0次冪等於1,不過C語言中的math.h頭文件里有一個函數pow,可以直接表示一個數的多少次方。
具體方法:
在文件的開頭的地方寫上#include<math.h>
然後調用pow函數求結果:result=pow(x,y);
上式的意思是:result等於x的y次方(冪)。
『捌』 在C語言中如何計算一個數的冪的方法有哪些
整數的話最簡單的辦法就是將一個給定到數連乘n次;以計算a到n次冪為例:
#include"stdio.h"
main()
{
double
a,temp;
int
n,i;
temp=1;
printf("請輸入底數:");
scanf("%d",&a);
printf("請輸入指數:");
scanf("%d",&n);
for(i=0;i
{
temp=temp*a;
}
printf("%f",temp);
}
這種方法只適用與指數n為>=0的整數;如果涉及分數或負數要用到數學函數#include"math.h"
『玖』 C語言中計算數值的整數次冪
scanf的函數原型為
int scanf( const char *format
[,argument]... );
它的返回值是這樣的,假如都輸入成功,輸入幾個變數,返回值就是幾。
例如:result = scanf( "%d %f %c", &i, &fp, &c );.都輸入成功的話,result == 3.
while (scanf ("%lf%d",&x,&exp)==2)這句話就是指如果兩個數都輸入正確則執行while循環。