用C语言程序设计:求x的n次方的函数。
double pow(double x, double y);
pow()用来计算以x 为底的 y 次方值,然后将结果返回
可能导致错误的情况:
如果底数 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。
注意,使用 GCC 编译时请加入-lm。
#include<stdio.h>
#include<math.h>
intmain()
{ printf("7 ^ 3 = %f
",pow(7.0,3.0));
printf("4.73 ^ 12 = %f
",pow(4.73,12.0));
printf("32.01 ^ 1.54 = %f
",pow(32.01,1.54));
return0;}
输出结果:
7 ^ 3 = 343.000000
4.73 ^ 12 = 125410439.217423
32.01 ^ 1.54 = 208.036691
绛旓細C璇█涓绠x鐨刵娆℃柟鍙互鐢ㄥ簱鍑芥暟鏉ュ疄鐜般俤oublepow(doublex锛宒oubley)锛沺ow()鐢ㄦ潵璁$畻浠涓哄簳鐨剏娆℃柟鍊硷紝鐒跺悗灏嗙粨鏋滆繑鍥炲彲鑳藉鑷撮敊璇殑鎯呭喌锛氬鏋滃簳鏁皒涓鸿礋鏁板苟涓旀寚鏁皔涓嶆槸鏁存暟锛屽皢浼氬鑷磀omainerror閿欒銆傚湪C璇█涓紝10鐨刵娆℃柟鍙互琛ㄧず涓簆ow(10锛宯)銆傚叾涓璸ow鍑芥暟鍦ㄥご鏂囦欢math.h涓紝鎵浠ヨ皟鐢ㄨ鍑芥暟鐨...
绛旓細include "stdio.h"void main(){...//鍦╩ain鍑芥暟閲屽紩鐢ㄤ笅闈㈢殑鍑芥暟}//寰幆姹俋鐨凬娆℃柟鐨勫嚱鏁癲ouble power(double x, int n){ double val=1.0; //锛堝垵濮嬪寲杩斿洖鍊硷級while(n--) //锛堝惊鐜疦娆★紝N娆℃柟锛塿al=val*x; //锛堟瘡娆′箻浠锛岀浉褰撲簬涔樹互1娆℃柟锛塺eturn(val); //锛堣繑鍥炵粨鏋滐級}...
绛旓細include<stdio.h>#define N 5float xdeN(float x, int k);void main(){ float a=7.01,b;int i;b=xdeN(a,N);printf("%f\n",b);}float xdeN(float x, int k){ int i;float sum=1;for(i=1;i<=k;i++)sum=sum*x;return sum;} 鎴戝啓鐨勭▼搴忔姣旇緝绠鍗曪紝鑳藉瀹炵幇绋嬪簭鐨瑕佹眰...
绛旓細include <stdio.h> void main(){ int m,n;scanf("%d%d",&m,&n);int power(int x,int y);printf("%d\n",power(m,n));} int power(int x,int y){ int c;if(y==1)c=x;else if(y<=0)printf("閿欒");else c=power(x,y-1)*x;return c;} ...
绛旓細C璇█涓绠x鐨刵娆℃柟鍙互鐢ㄥ簱鍑芥暟鏉ュ疄鐜般傚叿浣撶殑浠g爜濡備笅锛歩nclude <stdio.h> include <math.h> int main( ) {printf("%f",pow锛坸锛宯)锛夛紱return 0锛泒 C璇█鏄竴绉嶇粨鏋勫寲璇█锛屽畠鏈夌潃娓呮櫚鐨勫眰娆★紝鍙寜鐓фā鍧楃殑鏂瑰紡瀵绋嬪簭杩涜缂栧啓锛屼笖c璇█鐨勫鐞嗗拰琛ㄧ幇鑳藉姏閮介潪甯哥殑寮哄ぇ锛屼緷闈犻潪甯稿叏闈㈢殑杩愮畻绗...
绛旓細math.h搴撻噷鏈夎繖涓嚱鏁帮紝pow(x,n)锛屼篃鍙互鑷繁鐢ㄥ惊鐜潵鍐 long fun(int x,int n){ long p=1; int i;for (i=1;i<=n;i++)p*=x;return p;} 鍦ㄤ富鍑芥暟main()涓紝鐩存帴璋冪敤fun鍑芥暟鍗冲彲
绛旓細鐢╢or璇彞锛歩nclude <stdio.h>void main(){int i,n;float x,s=1;scanf("%f%d",&x,&n);for(i=1;i<=n;i++)s*=x;printf("璁$畻缁撴灉: %f",s);}鐢╳hile璇彞锛歩nclude <stdio.h>void main(){int i,n;float x,s=1;scanf("%f%d",&x,&n);while(i<=n) {s*=x;i++;}...
绛旓細鍦ㄥ墠闈㈠姞涓婃暟瀛﹀嚱鏁扮殑澶存枃浠#include"math.h"璋冪敤鍑芥暟pow 瀹氫箟double x,n;鐒跺悗灏嗕竴涓彉閲忕瓑浜巔ow(x,n)锛岄偅涓彉閲忓氨鏄X鐨凬娆℃柟
绛旓細include<stdio.h> int power(int x,int n){ if(n==0)return 1;elseif(n%2==1)return x*power(x,n-1);else{ int y=power(x,n/2);return y*y;} } int main(){ int a,b,c;printf("enter x and n:");setvbuf(stdout,NULL,_IONBF,0);scanf("%d%d",&a,&b);c=power(a...
绛旓細include<stdio.h>double power(double x, int n){ double p=1.0; while(n>0) { p=p*x; n--; } return p;}int main(void){ double x; int n; scanf("%lf %d",&x,&n); printf("%lf\n",power(x,n)); return 0;} ...