janny1601 发表于 2007-6-21 10:56

一个很小的程序,就是得不到结果

#include <stdio.h>
#include "math.h"
#include"iostream.h"
#include "fstream.h"
void main()
{
double S0,R0,Sk,Rk,temp;
S0=2.5;
R0=1;
Rk=1.5;
temp=pow(S0,3)-pow(R0,3)+pow(Rk,3);
Sk=pow(temp,1/3);
printf("The value of Sk is %f\n",Sk);
}

不管给Rk赋什么值,结果都是1,很奇怪,还请高手帮忙看下

janny1601 发表于 2007-6-21 15:13

也没人来解答呀,只好自问自答了,呵呵,找了一天才发现原因。
1/3的结果是0,所以,不论Rk取啥值,都是1。可以改成1.0/3.0,或者(float)1/(float3)3。

风花雪月 发表于 2007-6-21 20:17

呵呵,基本问题
页: [1]
查看完整版本: 一个很小的程序,就是得不到结果