C语言问题,调用的pow函数用法。谢谢

我对一个数开三次方
pow(A,1/3),做出来是错误的答案。
改为pow(A,1.0/3)就对了,是为什么呢?谢谢

程序:
#include<stdio.h>
#include<math.h>
#define PI 3.1415926
void main()
{
float T,A,H;
printf("输入卫星的运转周期:\n");
scanf("%f",&T);
A=((6.67E-011)*(6E+024)*(T*T))/(4*PI*PI);
H=pow(A,1.0/3)-(6.371E+006);
printf("卫星的运转高度:\n%.1E\n",H);
}

原型:extern float pow(float x, float y);

用法:#include <math.h>

功能:计算x的y次幂。

说明:x应大于零,返回幂指数的结果。

举例:

// pow.c

#include <stdlib.h>
#include <math.h>
#include <conio.h>
void main()
{
printf("4^5=%f",pow(4.,5.));
getchar();
}

相关函数:pow10
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-04-07
1/3,编译器认为是整型数除法,结果=0
换为1.0/3,编译器认为是浮点型数除法,结果是0.33333...
所以结果正确追问

1.0/3.0的话也可以是吧

追答

应该是可以的

本回答被提问者采纳
第2个回答  2012-03-24
这是因为pow的原型是 float pow(float a,float b),understand? 另外1/3=0这个知道吧
相似回答