c语言浮点数问题
#include<stdio.h>doublefun(doubleq){intn;doubles,t;n=2;s=2.0;while(s<=q){t=s;/*******...
#include <stdio.h>
double fun(double q)
{int n; double s,t;
n = 2;
s = 2.0;
while (s<=q)
{
t=s;
/************found************/
s=s+(n+——)/n;
n++;
}
printf("n=%d\n",n);
/************found************/
return t;
}
main ()
{
printf("%f\n", fun(50));
}
第二个程序填空题
s=s+(n+——)/n;
n是要+1.0吧,但是我参考书答案上是(n+1.)
有这种写法吗? 展开
double fun(double q)
{int n; double s,t;
n = 2;
s = 2.0;
while (s<=q)
{
t=s;
/************found************/
s=s+(n+——)/n;
n++;
}
printf("n=%d\n",n);
/************found************/
return t;
}
main ()
{
printf("%f\n", fun(50));
}
第二个程序填空题
s=s+(n+——)/n;
n是要+1.0吧,但是我参考书答案上是(n+1.)
有这种写法吗? 展开
4个回答
展开全部
有啊,(n+1)/n的结果是整数等于1,就是每次将s的值加1,而(n+1.0)/n所求的结果就不是整数形式了,而是以浮点的形式表示,所以s每次加上的数就是一个浮点数。所以就要看题目的要求了。
(1)当填1的时候结果n=51
50.000000;
(2)当填1.0的时候结果n=47;
49.394948
(1)当填1的时候结果n=51
50.000000;
(2)当填1.0的时候结果n=47;
49.394948
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
为什么要那么写,要常规写法,不要玩花俏。
浮点数没有精确的,比较时利用差的绝对值和0的关系即可。
浮点数没有精确的,比较时利用差的绝对值和0的关系即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-03-11
展开全部
1.0或者1.都是正确的
C语言只要有小数点都是代表浮点数
C语言只要有小数点都是代表浮点数
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询