函数调用的问题
#include <stdio.h>int main()
{
double x,y,z;
double power(double a , double b);
scanf("%lf,%lf",&x,&y);
z=power(x,y);
printf("%lf",z);
}
double power(double a , double b)
{
double z1,c,i,n,z,m,n1,r,re,re1,v,p,w,h,temp;
if(b==0)
{
z = 1;
returnz;
}
else if(b==1)
{
z = a;
return z ;
}
else if(b>0&&((int)(b*10))%10==0)
{
temp = a;
for(i=1;i<b;i++)
{
a = a *temp;
}
z = a;
return z ;
}
else if(b>0&&((int)(b*10))%10!=0)
{
n=0;
c= b -(int)b;
m = c;
for(i=1;i<1000;i++)
{
m= m *10;
n++;
if(((int)(m*10))%10==0)
{
break;
}
}
n1 = 10;
for(i=1;i<n;i++)
{
n1=n1 *10 ;
}
temp = a ;
r = a;
for(h=1;h<c*n1;h++)
{
r = r*temp;
}
for(v=1;v<1000;)
{
p = v ;
temp = v;
for(w=1;w<n1;w++)
{ p = p*temp ;
}
if(p >r)
{
re = v;
v=100000.0;
break;
}
v = v +0.00001;
}
re1 =a;
temp = a;
for(i=1;i<(int)b;i=i+1)
{
re1 = re1*temp;
}
if(b<1&&b>0)
{
z = re ;
return z ;
}
else if(b>1)
{
z= re * re1;
return z ;
}
}
}
为什么我输入0和1之间的数值都正确,只要输入大於1的小数,有些数就发生问题,我研究很久,有大老可以解释吗 你这代码的排版,可读性太差了{:10_269:} 本帖最后由 傻眼貓咪 于 2022-4-3 21:11 编辑
兄弟你蛮厉害的。目前为止我是没有看过有人自己写 pow() 函数底数 base 和指数 exponent 都是 double 类型(因为太复杂也太困难了,比如 2.5 ^ 1.36),除了 C 语言本来的头文件 <math.h> 里的 pow() 之外,一般自己写的普通 pow() 函数都只是用 pow(int, int),再深入一点 pow(double, int)。 #include <stdio.h>
double pow(double, int);
int main() {
printf("%.2lf\n", pow(5, 3));
printf("%.2lf\n", pow(1.25, 3));
printf("%.2lf\n", pow(0.67, -7));
return 0;
}
double pow(double base, int exponent) {
if (!exponent) {
return 1;
}
else if (exponent > 0) {
return base * pow(base, exponent - 1);
}
return 1. / pow(base, -exponent);
}125.00
1.95
16.50 贴到代码里面好吗 {:5_109:} 6666666666666666 本帖最后由 kazuya8375 于 2022-4-4 00:53 编辑
傻眼貓咪 发表于 2022-4-3 21:10
兄弟你蛮厉害的。目前为止我是没有看过有人自己写 pow() 函数底数 base 和指数 exponent 都是 double 类型 ...
你過獎了,我只是自學1個月而已,所以code很亂 ,我自己研究半天就是沒辦法輸出>1的小數,但是我覺得我的邏輯思維應該沒錯,你能教導我嗎 kazuya8375 发表于 2022-4-4 00:50
你過獎了,我只是自學1個月而已,所以code很亂 ,我自己研究半天就是沒辦法輸出>1的小數,但是我覺得我的邏 ...
教导不敢当,如果你有疑问,可以发帖,这里很多人会回复你的。{:10_281:} {:10_256:} {:10_257:} {:5_95:} 傻眼貓咪 发表于 2022-4-4 08:10
教导不敢当,如果你有疑问,可以发帖,这里很多人会回复你的。
这代码格式,我觉得不会有很多人的
^_^
人造人 发表于 2022-4-4 11:20
这代码格式,我觉得不会有很多人的
^_^
不会不会,我还有很多要学习的 {:10_254:}{:10_254:} 傻眼貓咪 发表于 2022-4-4 12:04
不会不会,我还有很多要学习的
你误会了,不是说你的代码格式,是说楼主的代码格式
傻眼貓咪 发表于 2022-4-4 12:04
不会不会,我还有很多要学习的
我的意思是,楼主把代码写成这样,不会有很多人帮忙的
^_^
{:10_269:} 人造人 发表于 2022-4-4 12:39
你误会了,不是说你的代码格式,是说楼主的代码格式
哈哈哈哈,也是 {:10_250:}
页:
[1]