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);
} 展开
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);
} 展开
3个回答
展开全部
原型: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
用法:#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/3,编译器认为是整型数除法,结果=0
换为1.0/3,编译器认为是浮点型数除法,结果是0.33333...
所以结果正确
换为1.0/3,编译器认为是浮点型数除法,结果是0.33333...
所以结果正确
追问
1.0/3.0的话也可以是吧
追答
应该是可以的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是因为pow的原型是 float pow(float a,float b),understand? 另外1/3=0这个知道吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询