求解释
本帖最后由 风之残月 于 2014-11-9 22:44 编辑#include <stdio.h>
void main()
{
double power(double x,double y);
double a=2.0;double b = 3.0;
double result;
result = power(a,b);
}
double power(double x ,double y)
{
double s;
int i;
for(i=1;i<y;i++)
{
s = x*x;
}
return s;
}
这我要算2的三次方怎么错了
double power(double x ,double y)
{
double s=1.0;
int i;
for(i=0;i<y;i++)
{
s = s*x;
}
return s;
}
1 你的循环次数少了一次。
2 你循环体中的代码错误,应该是 s = s * x;
麻烦你以后直接贴代码,这样我可以直接复制代码了! 调用前未声明函数体,解决办法:1、main函数前声明一下函数体,2、或者把你的power函数复制到main函数前面 X_BOT 发表于 2014-8-14 20:25
调用前未声明函数体,解决办法:1、main函数前声明一下函数体,2、或者把你的power函数复制到main函数前面
double power(double x,double y);第一行这个不是声明了吗?
本帖最后由 小靚同学Leon 于 2014-8-14 21:13 编辑
你的循环内部是s=x*x,s的值每次循环不改变的,所以一直都是4. 小靚同学Leon 发表于 2014-8-14 20:41
函数声明是要在main函数前,不是在main函数内部声明。将这句double power(double x,double y); 拷贝到#incl ...
这是visualC++6.0 我试了,结果一样
雨水 发表于 2014-8-14 20:52
这是visualC++6.0 我试了,结果一样
是的,我搞混了,是你的代码有问题,子函数应该是酱紫的 double s;
double i;
s=x;
for(i=1;i<y;i++)
{
s=s*x;
}
return s;
s=x*x错了,
无论你循环多少次,x的值没有变,s=x*x的值也不会变,s永远=x*x=2*2=4.
改正:
先给s初始化,s=1;
再计算s, s=s*x;
循环过程:
第一次, s=s*x=1*2=2;
第二次, s=s*x=2*2=4;
第三次, s=s*x=4*2=8;
ok. a=2.0,作为实参传入函数,付给形参x,返回s=x*x,是x的平方,不是三次方 请结贴! 流行语 发表于 2014-8-15 21:02
请结贴!
你刷什么东西 回帖是一种美德
页:
[1]