c语言x的n次幂 C语言,定义函数(x,n),计算x的n次幂

\u5173\u4e8eC\u8bed\u8a00\u4e2dn\u6b21\u5e42\u51fd\u6570\u7684\u7528\u6cd5

#include
int power(int n,int p);
void main()
{ int S[8];
int i=0;
int n=2;
printf("The results is:\n");
for(i=0;i<8;i++)
{
S[i]=power(n,i+1);//\u8c03\u7528\u51fd\u6570
printf("%d\n",S[i]);
}
printf("That's all\n");
}
int power(int n,int p)
{
int pow=1;
int i;
for(i=0;i<=p;i++)
pow*=n;
return pow;
}
\u5728\u8c03\u7528\uff1aS[i]=power(n,i); \u4e4b\u524d\uff0ci\u672a\u521d\u59cb\u5316\uff0c\u53ef\u4ee5\u624b\u52a8\u8f93\u51fa\u6765\u770b\u4e00\u4e0b\uff0c\u503c\u7ed3\u679c\u662f\u968f\u673a\u7684\uff0c\u5e76\u4e0d\u4e00\u5b9a\u662f0\u3002
\u7f16\u8bd1\u4f1a\u63d0\u793a\uff1aWarning: Possible use of 'i' before definition in function main\u5728do{}while;\u4e2d\uff0c\u5f00\u5173i\u503c\u5e76\u672a\u6539\u53d8\uff0c\u82e5i<8\u6210\u7acb\uff0c\u90a3\u4e48\u7a0b\u5e8f\u5c31\u4f1a\u53d8\u6210\u6b7b\u5faa\u73af\u3002
\u4e00\u5f00\u59cb\u7684\u90a3\u4e2ai\u6ca1\u6709\u521d\u59cb\u5316\uff0cs[i]\u4e0d\u77e5\u9053\u7528\u54ea\u91cc\u7684\u5185\u5b58\u4e86\u3002\u8fd8\u6709\u6bcf\u6b21\u5faa\u73af\u540e\u8bb0\u5f97i++\u3002

\u6269\u5c55\u8d44\u6599\uff1a\u6ce8\u610f\u4e8b\u9879
pow() \u51fd\u6570\u7528\u6765\u6c42 x \u7684 y \u6b21\u5e42\uff08\u6b21\u65b9\uff09\uff0c\u5176\u539f\u578b\u4e3a\uff1adouble pow(double x, double y);
pow()\u7528\u6765\u8ba1\u7b97\u4ee5x \u4e3a\u5e95\u7684 y \u6b21\u65b9\u503c\uff0c\u7136\u540e\u5c06\u7ed3\u679c\u8fd4\u56de\u3002\u8bbe\u8fd4\u56de\u503c\u4e3a ret\uff0c\u5219 ret = xy\u3002
\u53ef\u80fd\u5bfc\u81f4\u9519\u8bef\u7684\u60c5\u51b5\uff1a
\u5982\u679c\u5e95\u6570 x \u4e3a\u8d1f\u6570\u5e76\u4e14\u6307\u6570 y \u4e0d\u662f\u6574\u6570\uff0c\u5c06\u4f1a\u5bfc\u81f4 domain error \u9519\u8bef\u3002
\u5982\u679c\u5e95\u6570 x \u548c\u6307\u6570 y \u90fd\u662f 0\uff0c\u53ef\u80fd\u4f1a\u5bfc\u81f4 domain error \u9519\u8bef\uff0c\u4e5f\u53ef\u80fd\u6ca1\u6709\uff1b\u8fd9\u8ddf\u5e93\u7684\u5b9e\u73b0\u6709\u5173\u3002
\u5982\u679c\u5e95\u6570 x \u662f 0\uff0c\u6307\u6570 y \u662f\u8d1f\u6570\uff0c\u53ef\u80fd\u4f1a\u5bfc\u81f4 domain error \u6216 pole error \u9519\u8bef\uff0c\u4e5f\u53ef\u80fd\u6ca1\u6709\uff1b\u8fd9\u8ddf\u5e93\u7684\u5b9e\u73b0\u6709\u5173\u3002
\u5982\u679c\u8fd4\u56de\u503c ret \u592a\u5927\u6216\u8005\u592a\u5c0f\uff0c\u5c06\u4f1a\u5bfc\u81f4 range error \u9519\u8bef\u3002
\u9519\u8bef\u4ee3\u7801\uff1a
\u5982\u679c\u53d1\u751f domain error \u9519\u8bef\uff0c\u90a3\u4e48\u5168\u5c40\u53d8\u91cf errno \u5c06\u88ab\u8bbe\u7f6e\u4e3a EDOM\uff1b
\u5982\u679c\u53d1\u751f pole error \u6216 range error \u9519\u8bef\uff0c\u90a3\u4e48\u5168\u5c40\u53d8\u91cf errno \u5c06\u88ab\u8bbe\u7f6e\u4e3a ERANGE\u3002
Math.pow(\u5e95\u6570,\u51e0\u6b21\u65b9)
\u5982\uff1adouble a=2.0;
double b=3.0;
double c=Math.pow(a,b);
\u5c31\u662f2\u7684\u4e09\u6b21\u65b9\u662f\u591a\u5c11\uff1b
c\u6700\u7ec8\u4e3a8.0\uff1b

//\uff081\uff09\u5b9a\u4e49\u51fd\u6570(x,n),\u8ba1\u7b97x\u7684n\u6b21\u5e42#include "stdio.h"
double f(double x,int n)
{
double s=1.0;
int i;
for(i=1;i<=n;i++)
{
s=s*x;
}
return s;
}
void main()
{
double x;
int n;
printf("\u8bf7\u8f93\u5165x:");
scanf("%lf",&x);
printf("\u8bf7\u8f93\u5165n:");
scanf("%d",&n);
printf("%lf\u7684%d\u6b21\u5e42\u7b49\u4e8e%lf\n",x,n,f(x,n));
}\u8fd0\u884c\u622a\u56fe\uff1a

double x,p; //定义两个双精度浮点数,x和p,同时分配存储单元
unsigned n; //定义一个无符号整数,n,同时分配存储单元
printf("Please input x:"); //输出"Please input x:",提示用户输入x的值
scanf("%lf",&x); //输入一个浮点数,存在&x所指向的存储单元
printf("Please input n:"); //输出"Please input n:",提示用户输入n的值
scanf("%d",&n); //输入一个整数,存在&n所指向的存储单元
p=1.0; //给p赋值为1.0
while(n--) p*=x; …………#//这是一个循环,在while后的括号内内容为真时,进入循环
语句为n--,就是先判断n的值是否为真,再执行n=n-1操作
若n不等于0,即语句为真
语句为真进入p*=x的语句循环
即p=p*x,其中,p的初始值为1.0,x是你输入的某浮点数
当n为零时退出循环,此时,一共执行了n次*x的操作,即x的n次方
p中存放的是x的n次方的结果
printf("%f",p); //输出p的值

#include"stdio.h"
main()
{
double x,p;
unsigned n;
printf("Please input x:");
scanf("%lf",&x); //输入x,比如5
printf("Please input n:");
scanf("%d",&n); //输入幂次,比如3
p=1.0;
while(n--) p*=x;
//这就是计算幂次,如上述举例的话,n=3一直递减到0,执行3次,每次执行 p = p * 5;
//p初值为1.
printf("%f",p);
}

希望对你有所帮助。

关键在这里
while(n--)p*=x;
p*=x;即p = p*x;

while(n--)p*=x;相当于:
while(n!=0)
{
n--;
p=p*x;
}
/////
while(x)循环的条件是x为“真”,“真”即“非0值”,所以是判断x不为0!

看上面的代码,麻烦得要死。C自身有个头文件 math.h 包含进去,用 pow(x,y)就行了嘛。

while(n--) p*=x;
主要语句;
将每次计算的结果依次乘以p并且将新值再次存储到p中,
直到n=0时,while的条件不再满足退出循环。

  • c璇█璁$畻x鐨刵娆℃柟
    绛旓細C璇█涓绠梮鐨刵娆℃柟鍙互鐢ㄥ簱鍑芥暟pow鏉ュ疄鐜般傚嚱鏁板師鍨嬶細double pow(double x, double n)銆傚叿浣撶殑浠g爜濡備笅锛歩nclude <stdio.h> include <math.h> int main( ){ printf("%f",pow锛坸锛宯)锛夛紱return 0锛泒 娉細浣跨敤pow鍑芥暟鏃讹紝闇瑕佸皢澶存枃浠#include<math.h>鍖呭惈杩涙簮鏂囦欢涓
  • c璇█鎬庢牱璁$畻x鐨刵娆℃柟?
    绛旓細1 浣跨敤pow鍑芥暟銆傚湪C璇█鐨勬爣鍑嗗ご鏂囦欢math.h涓紝鏈夊簱鍑芥暟pow锛屽0鏄庝负 double pow(double x, double n);鍏跺姛鑳戒负璁$畻x鐨刵娆℃柟骞惰繑鍥炵粨鏋溿傛墍浠ュ彲浠ョ敤pow璁$畻x鐨刵娆℃柟銆傝鍑芥暟閫傜敤浜庝互涓嬪嚑绉嶆儏鍐碉細a. 褰搉涓烘诞鐐规暟绫诲瀷鏃讹紝蹇呴』浣跨敤pow銆俠. 褰搙涓烘诞鐐规暟鎴栧缁撴灉鍊肩簿搴﹁姹備笉楂樻椂锛屽彲浠ヤ娇鐢╬ow銆2 ...
  • C璇█,瀹氫箟鍑芥暟(x,n),璁$畻x鐨刵娆″箓
    绛旓細//锛1锛夊畾涔夊嚱鏁(x,n),璁$畻x鐨刵娆″箓#include "stdio.h"double f(double x,int n){ double s=1.0;int i;for(i=1;i<=n;i++){ s=s*x;} return s;} void main(){ double x;int n;printf("璇疯緭鍏:");scanf("%lf",&x);printf("璇疯緭鍏:");scanf("%d",&n);printf("...
  • C璇█缂栧啓绋嬪簭杈撳嚭x鐨刵娆℃柟缁撴灉,x鍜宯浠庨敭鐩樿緭鍏
    绛旓細scanf("%f",&x); return x;}int insert(void){ int x; scanf("%d",&x); return x;}//鏂囦欢4 linkin.hfloat mypow(float x, int n);void print(float c);float insert(void);
  • C璇█ 鍑芥暟鍔熻兘鏄绠x鐨刵娆℃柟
    绛旓細C璇█涓绠x鐨刵娆℃柟鍙互鐢ㄥ簱鍑芥暟鏉ュ疄鐜般傚叿浣撶殑浠g爜濡備笅锛歩nclude <stdio.h> include <math.h> int main( ) {printf("%f",pow锛坸锛宯)锛夛紱return 0锛泒 C璇█鏄竴绉嶇粨鏋勫寲璇█锛屽畠鏈夌潃娓呮櫚鐨勫眰娆★紝鍙寜鐓фā鍧楃殑鏂瑰紡瀵圭▼搴忚繘琛岀紪鍐欙紝涓c璇█鐨勫鐞嗗拰琛ㄧ幇鑳藉姏閮介潪甯哥殑寮哄ぇ锛屼緷闈犻潪甯稿叏闈㈢殑杩愮畻绗...
  • c璇█涓嶇敤pow姹x鐨刵娆℃柟
    绛旓細C璇█涓绠x鐨刵娆℃柟鍙互鐢ㄥ簱鍑芥暟鏉ュ疄鐜般俤oublepow(doublex锛宒oubley)锛沺ow()鐢ㄦ潵璁$畻浠涓哄簳鐨剏娆℃柟鍊硷紝鐒跺悗灏嗙粨鏋滆繑鍥炲彲鑳藉鑷撮敊璇殑鎯呭喌锛氬鏋滃簳鏁皒涓鸿礋鏁板苟涓旀寚鏁皔涓嶆槸鏁存暟锛屽皢浼氬鑷磀omainerror閿欒銆傚湪C璇█涓紝10鐨刵娆℃柟鍙互琛ㄧず涓簆ow(10锛宯)銆傚叾涓璸ow鍑芥暟鍦ㄥご鏂囦欢math.h涓紝鎵浠ヨ皟鐢ㄨ鍑芥暟鐨...
  • C璇█閲X鐨凬娆℃柟
    绛旓細鍦ㄥ墠闈㈠姞涓婃暟瀛﹀嚱鏁扮殑澶存枃浠#include"math.h"璋冪敤鍑芥暟pow 瀹氫箟double x,n;鐒跺悗灏嗕竴涓彉閲忕瓑浜巔ow(x,n)锛岄偅涓彉閲忓氨鏄X鐨凬娆℃柟
  • c璇█x鐨刵娆″箓
    绛旓細璇彞涓簄--锛屽氨鏄厛鍒ゆ柇n鐨勫兼槸鍚︿负鐪燂紝鍐嶆墽琛宯=n-1鎿嶄綔 鑻涓嶇瓑浜0锛屽嵆璇彞涓虹湡 璇彞涓虹湡杩涘叆p*=x鐨勮鍙ュ惊鐜 鍗硃=p*x,鍏朵腑锛宲鐨勫垵濮嬪间负1.0锛寈鏄綘杈撳叆鐨勬煇娴偣鏁 褰搉涓洪浂鏃堕鍑哄惊鐜紝姝ゆ椂锛屼竴鍏辨墽琛屼簡n娆*x鐨勬搷浣滐紝鍗x鐨刵娆℃柟 p涓瓨鏀剧殑鏄痻鐨刵娆℃柟鐨勭粨鏋 printf("%f",p); ...
  • 鐢C璇█缂栧啓X鐨凬娆℃柟,涓嶈兘鐢ㄦ暟瀛﹀簱鍑芥暟
    绛旓細include<stdio.h> main(){ int n,x;int i;int mul=1;printf("璇疯緭鍏鐨勫硷細");scanf("%d",&n);printf("璇疯緭鍏鐨勫硷細");scanf("%d",&x);for(i=0;i<n;i++)mul=mul*x;printf("x鐨刵娆℃柟涓%d\n",mul);}
  • 鐢C璇█绋嬪簭璁捐:姹x鐨刵娆℃柟鐨勫嚱鏁般
    绛旓細double pow(double x, double y);pow()鐢ㄦ潵璁$畻浠 涓哄簳鐨 y 娆℃柟鍊硷紝鐒跺悗灏嗙粨鏋滆繑鍥 鍙兘瀵艰嚧閿欒鐨勬儏鍐碉細濡傛灉搴曟暟 x 涓鸿礋鏁板苟涓旀寚鏁 y 涓嶆槸鏁存暟锛屽皢浼氬鑷 domain error 閿欒銆傚鏋滃簳鏁 x 鍜屾寚鏁 y 閮芥槸 0锛屽彲鑳戒細瀵艰嚧 domain error 閿欒锛屼篃鍙兘娌℃湁锛涜繖璺熷簱鐨勫疄鐜版湁鍏炽傚鏋滃簳鏁 x 鏄 ...
  • 扩展阅读:c语言计算x的n次幂 ... c语言简单实现x的n次方 ... 求x的n次幂程序c语言 ... c语言编程求x的n次幂 ... x n求和 ... x的n次幂c语言怎么写 ... 2 1 n次用c语言 ... c语言n次幂函数怎么写 ... n从1到无穷x的n次方 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网