#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) //(返回结果)
}