扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
int integerPower1(int x,int y)函数中,result没有赋初值1
目前创新互联建站已为上千多家的企业提供了网站建设、域名、网络空间、网站托管运营、企业网站设计、三江侗网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
int result = 1; 这样就对了
否则编译器会随机指定一个数值给result,有可能是0
C语言中的POW函数使用:
#includestdio.h
#defineACCURACY100
doublefunc1(doublet,intn);
doublefunc2(doubleb,intn);
doublepow2(doublea,doubleb);
intmain(){
printf("%lf",pow2(5.21,4.11));
return0;
}
doublepow2(doublea,doubleb){
if(a==0b0){
return0;
}
elseif(a==0b=0){
return1/0;
}
elseif(a0!(b-(int)b0.0001||(b-(int)b0.999))){
return1/0;
}
if(a=2a=0){
doublet=a-1;
doubleanswer=1;
for(inti=1;iACCURACY;i++){
answer=answer+func1(t,i)*func2(b,i);
}
returnanswer;
}
elseif(a2){
inttime=0;
while(a2){
a=a/2;
time++;
}
returnpow2(a,b)*pow2(2,b*time);
}
else{
if((int)b%2==0){
returnpow2(-a,b);
}
else{
return-pow2(-a,b);
}
}
}
doublefunc1(doublet,intn){
doubleanswer=1;
for(inti=0;in;i++){
answer=answer*t;
}
returnanswer;
}
doublefunc2(doubleb,intn){
doubleanswer=1;
for(inti=1;i=n;i++){
answer=answer*(b-i+1)/i;
}
returnanswer;
}
扩展资料
C++提供以下几种pow函数的重载形式:
doublepow(doubleX,intY);
floatpow(floatX,floatY);
floatpow(floatX,intY);
longdoublepow(longdoubleX,longdoubleY);
longdoublepow(longdoubleX,intY);
使用的时候应合理设置参数类型,避免有多个“pow”实例与参数列表相匹配的情况。
其中较容易发生重载的是使用形如:
intX,Y;
intnum=pow(X,Y);
这是一个比较常用的函数,但是编译器会提醒有多个“pow”实例与参数列表相匹配。
可以使用强制类型转换解决这个问题:num=pow((float)X,Y);
#include stdio.h
float zhishu(float x,int n)
{
int i;
float sum;
if(n0)return 0;
else
{
for(i=0;i=n;i++)
{ if(i==0)sum=x;
else
sum*=x;
}
return sum;
}
}
void main()
{
int n;
float x;
puts("请输入底数x和指数n,中间以回车隔开");
scanf("%f",x);
scanf("%d",n);
printf("%f",zhishu(x,n));
}我运行过了,结果行.不过我只写出指数是正整数的.负整数的也是同样的道理.你自己写吧
#include stdio.h
#include math.h
double exp(double x) {
double sum = 0;
double term = 1;
double index = 1;
while (fabs(term) = 1e-6) {
sum = sum + term;
term = term * x / index;
index = index + 1;
}
return sum;
}
int main() {
char c;
double x;
while (scanf(" %c", c) == 1) {
if (c == '#') break;
ungetc(c, stdin);
scanf("%lf", x);
printf("e(%.3lf) = %.5lf\n", x, exp(x));
}
}
在开始加上#include math.h;
程序中就可以调用pow(x,y)。
main()
{
double z;
z=pow(10,5);
printf("%lf/n",z);
}
输出结果:
285.000000
扩展资料
c语言求自然对数的底e的指数,可以使用函数exp().
exp()的头文件:#include
exp()的函数原型:double exp(double x);
exp()函数的作用:返回e的x次方。
exp()的相关函数:float expf(float x);
long double expl(long double x);
注:自然对数的底e叫做: 欧拉数(eula's number)
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流