送分儿题

寻开心 2019-11-20 12:00:22
不许敲代码,只准直接回答
初学者的问题哈

float f = 1.3
while ( f-2 ) {
cout << "what?"; // 这一句会输出吗? 为什么
}
...全文
128 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
one and one. 2020-02-04
  • 打赏
  • 举报
回复 1
这个和精度有关系吗 不是只和while括号里是否为0有关吗
炫锋羽 2019-12-04
  • 打赏
  • 举报
回复
引用 3 楼 寻开心的回复:
给初学者的问题哎
目的就是要立即while里面的那个东西到底是什么

Quesstion1:
float f = 1.3
while ( f-2 ) {
cout << "what?"; // 这一句会输出吗? 为什么
}

Quession 2:
float f = 1.3;
int n = f-2;
while( n ) {
cout << "what?"; // 会运行不
};

Quesstion 3:
float f = 1.3;
float d= f-2;
while ( d ) {
cout << "what?" // 这句会执行bu
}

根本问题就是, while语句括号里面的到底是什么 ?
Q1能运行,Q2不能运行,Q3能运行。 Q2之所以不能运行是因为n是整形变量,运算后的结果会舍去小数部分,最终结果为零。在循环条件中0即false,非0即true。 所以:Q1能运行,Q2不能运行,Q3能运行。
寻开心 2019-11-21
  • 打赏
  • 举报
回复
算了。不玩了。结贴。

本来就是想说明一下while() 括号里面的表达式是和返回的类型做同类型下0的比较的事儿

都没兴趣参与
自信男孩 2019-11-20
  • 打赏
  • 举报
回复
f-2是while判断的,对于整型数据表达是f-2若为0,则不执行若非0,则执行循环体;
对于浮点数f-2就需要自己加一些条件判断了,比如

while (fabsf(f-2) > 1e-6)

所以这个问题本身可能就存在问题~
寻开心 2019-11-20
  • 打赏
  • 举报
回复
给初学者的问题哎
目的就是要立即while里面的那个东西到底是什么

Quesstion1:
float f = 1.3
while ( f-2 ) {
cout << "what?"; // 这一句会输出吗? 为什么
}

Quession 2:
float f = 1.3;
int n = f-2;
while( n ) {
cout << "what?"; // 会运行不
};

Quesstion 3:
float f = 1.3;
float d= f-2;
while ( d ) {
cout << "what?" // 这句会执行bu
}

根本问题就是, while语句括号里面的到底是什么 ?
wowpH 2019-11-20
  • 打赏
  • 举报
回复
会运行。。。。
Italink 2019-11-20
  • 打赏
  • 举报
回复
肯定会运行吧(偷偷敲了,我卢本伟没有开挂),我把f-2改成f-1.3,以为是由于精度问题,所以才会输出,结果当我监视f-1.3的值,立马就懵了,修改成f-1.3f.等楼下解释
datoulaile123 2019-11-20
  • 打赏
  • 举报
回复
我觉得问题本身应该是考精度问题吧,和while没关系

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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