C语言问题,求大神解决,我是小白,最好解释下原因,谢谢拉。

下面程序的运行结果为_______。#include<stdio.h>voidmain(){doublesum=0.0,x;for(x=0.0;x!=3.0;x+=0.1... 下面程序的运行结果为_______。
#include <stdio.h>
void main()
{
doublesum=0.0,x;
for(x=0.0;x!=3.0;x+=0.1)
sum+=x;
printf("\n x=%f", x);
}
A) x=3.0 B)x=2.0
C) 会提示出错 D)形成死循环
答案:D
展开
 我来答
langpp1
2013-03-19 · TA获得超过389个赞
知道小有建树答主
回答量:197
采纳率:0%
帮助的人:131万
展开全部
double类型属于浮点数,在计算机中不能直接对浮点数做==和!=判断。
浮点数需要只能判断>或者<。
因为精度的问题,导致内存中相同的数据有很多表示,所以,x!=3.0
恒成立。
因此,会形成死循环!
度神度鬼度活人
2013-03-19
知道答主
回答量:48
采纳率:0%
帮助的人:17.6万
展开全部
对于实型的数据最好不要进行==或!=的判断。因为在存储实型数据时会存在误差。这样就不能精确的判断是否相等或不等。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式