C语言如何计算x的n次方

Python015

C语言如何计算x的n次方,第1张

#include "stdio.h"

void main()

{

int x,n

long sum=1

printf("请输入x:")

scanf("%d",&x)

printf("请输入n:")

scanf("%d",&n)

printf("%d的%d次方是",x,n)

for(int i=1i<=ni++)

    sum*=x

printf("%d\n",sum)

}

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\n",pow(7.0,3.0))

printf("4.73 ^ 12 = %f\n",pow(4.73,12.0))

printf("32.01 ^ 1.54 = %f\n",pow(32.01,1.54))

return0}

输出结果:

7 ^ 3 = 343.000000

4.73 ^ 12 = 125410439.217423

32.01 ^ 1.54 = 208.036691

#include "stdio.h"void main()

{...//在main函数里引用下面的函数}//循环求X的N次方的函数double power(double x, int n)

{

double val=1.0//(初始化返回值)

while(n--) //(循环N次,N次方)

val=val*x //(每次乘以X,相当于乘以1次方)

return(val) //(返回结果)

}