这题 怎么走啊,我看不明白啊,
/* POW.C*
*/
#include <stdio.h>
double power( double x, double y );
void main( void )
{
double x = 3.0, y = 3.0, z;
z = power( x, y );
printf( "%.1f to the power of %.1f is %.1f\n", x, y, z );
}
double power( double x, double y )
{
double z = x;
while( --y )
{
z *= x;
}
return z;
}
哪里不明白,多看看 double power( double x, double y )
{
double z = x;
while( --y )
{
z *= x;
}
return z;
}
double power( double x, double y )
{
double z = x;
while( --y )
{
z *= x;
}
return z;
}
这个不明白,应该怎么走,能加我QQ指点一下吗。910992696 while里面的判定式应该是boolean类型的,你这是double类型,这会报错的;
这是你想表达的意思吗?(如果是你需要把--y 改成 --y > 0 )
函数有两个参数,x和y,在函数内x的值被赋值给了z,而y作为了控制次数的控制符,--y表示的先减一在判断,而y--表示的先判断再减一,while循环中是进行运算z = z * x,最后把z的值返回。 什么怎么走 我带进去走 走着走着就乱了 #include <stdio.h>
double power( double x, double y )
{
double z = x;
while( --y )
// 先执行一次用y = y - 1
// 传进来的值等于3.0
// 所以while循环执行两次
{
// 进入循环
z *= x;
// z = z * x;
// (1) z = 3.0 * 3.0
// (2) z = 9.0 * 3.0
}
// 退出循环 z = 27.0
return z;
}
int main()
{
double x = 3.0, y = 3.0, z;
z = power( x, y );
// 用一个变量保存power的返回值
printf( "%.1f to the power of %.1f is %.1f\n", x, y, z );
}
页:
[1]