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

我对一个数开三次方pow(A,1/3),做出来是错误的答案。改为pow(A,1.0/3)就对了,是为什么呢?谢谢程序:#include<stdio.h>#include<... 我对一个数开三次方
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);
}
展开
 我来答
641038654

推荐于2016-01-03 · TA获得超过10.9万个赞
知道顶级答主
回答量:7.1万
采纳率:88%
帮助的人:7574万
展开全部
原型: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
Hitask
推荐于2016-04-07 · TA获得超过503个赞
知道小有建树答主
回答量:360
采纳率:100%
帮助的人:318万
展开全部
1/3,编译器认为是整型数除法,结果=0
换为1.0/3,编译器认为是浮点型数除法,结果是0.33333...
所以结果正确
追问
1.0/3.0的话也可以是吧
追答
应该是可以的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
3642578a
2012-03-24 · TA获得超过265个赞
知道小有建树答主
回答量:337
采纳率:0%
帮助的人:277万
展开全部
这是因为pow的原型是 float pow(float a,float b),understand? 另外1/3=0这个知道吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式