一道面试题,你帮忙,我给分呀

Developerljm 2002-12-25 01:39:33
1,float x,x!=x在什么情况下结果为真?
2,int x,y,((x>0)&&(y>0)&&(x+y<x)在什么情况下为真?
3,unsigned int x,y,((x>0)&&(y>0)&&(x+y<x)在什么情况下为真?


请教各位了?
...全文
103 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
hzzhq 2002-12-28
  • 打赏
  • 举报
回复
浮点数的比较,应写为在一定的精度条件下进行
#define MIN 0.0001

....
{
flat x,y;
....
if (((x -y) >0 ? (x -y) : (y -x) ) > MIN)
{
...
}
else
{
...
}

}
samensoft 2002-12-28
  • 打赏
  • 举报
回复
x=0是为真
thefirstwind 2002-12-28
  • 打赏
  • 举报
回复
1 赵本山的回答是:在算错的情况下为真
2 溢出了
3 溢出了
linhaibin 2002-12-27
  • 打赏
  • 举报
回复
我认为只要超过有效位后就会为真的,FLOAT 有效为7位呀,超过变为无效的,可能是这样吧!
ddjcr 2002-12-27
  • 打赏
  • 举报
回复
实验证明:所以情况下float x; x!=x 都不可能为真!!!!!!
SwordMan2001 2002-12-27
  • 打赏
  • 举报
回复
TO maozefa(之源) && gxynctz(阿天) :
在float的有效精度和范围内,这样的比较和整型数的比较没有什么区别!

我的看法是,在任何情况下(除非程序出错),这个比较的结果都是FALSE。

例如:
float x=123.2301038;//其实,这时x=123.230104,保留6位精度
再做 x!=x 比较时,当然有 123.230104 与 123.230104, 这里由于精度问题已经处理过了,不会再出现这样的问题。

又如:
float x=1E1234;//这时,x实际上已经溢出,下面只要有涉及x的运算,程序会立即停止,不正常结束。
gxynctz 2002-12-26
  • 打赏
  • 举报
回复
1 float x,x!=x
对于float型数据,这样比较世不严谨的。
boyfling 2002-12-26
  • 打赏
  • 举报
回复
第一题有这种情况吗??!!
gz
xx
foreversun 2002-12-26
  • 打赏
  • 举报
回复
x!=++x
为真
grayfox2008 2002-12-26
  • 打赏
  • 举报
回复
x!=x????????????????
好像矛盾啊,呵呵,实在想不出来,望高手指教。
x!=++x是不是为真?
eroswzg 2002-12-26
  • 打赏
  • 举报
回复
关注 为什么float不能做比较呢?
trancebaby 2002-12-26
  • 打赏
  • 举报
回复
>>float不能做==比较。

可以阿。。。
neubird 2002-12-25
  • 打赏
  • 举报
回复
gz
阿发伯 2002-12-25
  • 打赏
  • 举报
回复
1,float x,x!=x在什么情况下结果都为真!
理由是,float不能做==比较。
阿发伯 2002-12-25
  • 打赏
  • 举报
回复
1,float x,x!=x在什么情况下结果都为真!
maojincxj 2002-12-25
  • 打赏
  • 举报
回复
2. x = 32767, y = 1;
x + y => -32768 (超出int的范围了)< x

3. x = 65535, y = 1;
x + y < x为真,理由同上,越界了

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧