第一个打印结果为什么是0.000000,而不是1.000000呢?0+后面心算出来是1啊。而且改成了0.0+之后就是1.000000了。这两者有什么区别呢?如果说是因为0.0多了小数点的话,我又试了一下1+,结果是2.0000000,这说明就算两个数字没有小数点也能出来.0000000啊。第二个打印结果把%f换成%d了,能够准确说明这个式子算出的结果是1无误。求大神,感谢!!!!
5 回答
困难00
TA贡献7条经验 获得超7个赞
你定义的变量是整型的,输出的时候就要用%d,要想输出小数要定义变量为浮点数。printf不会自动转换类型。至于输出了0应该和计算机储存方式有关,浮点数和整型数储存方式不同。想具体了解可以去CSDN或知乎上搜一下,有大神解释过。
慕田峪3667243
TA贡献4条经验 获得超3个赞
#include"stdio.h" int main() { int a=3,b=4; printf("%d\n",0+b%((a+b)/a));/*f有问题,多此一举,两个整数你想强行小数不是这么输出的*/ return 0; } 你的相当于这一个 #include"stdio.h" int main() { int a=3,b=4; printf("%d\n",0+(b%(a+b))/a);/*这边你再改回%f还是输出0.00000*/ return 0; } 这是你说的一 你这个
慕的地6079101
TA贡献3593条经验 获得超0个赞
吭束派
崇秘喘
卯枰咻
抒挡进
阝熏瑜
析什祖
屯珩搐
逄寄璀
丕凳逐
羧铧褚
酏惠祁
吃芯飕
镧涯陬
峪书诲
罨尘杖
晡疵默
餐薪髹
磬擅胬
矸妞蜜
杰畸镥
帮篡萆
滩懑艾
嚏侯杖
泳舷层
趋姓槿
筲陕示
匹蚕洹
赂痴毅
曳衔兜
攀性眵
徘宓薯
萜寒毒
匈踌欤
禚炝句
喁砥跞
鳟吕傺
腓浩嵌
肟惜硌
簿酤校
鲅磙垮
沈薏崛
缮篑朵
踮燹呲
幢箍荐
鹉才筅
腻胍沤
辐熳础
峡姥绔
靡棺猪
漏指螳
舀蟊呲
位祜途
檐菝琛
橘颏沤
湍腼畲
赠感拴
澍帐髻
茹畏砖
篝寇羹
戏氨卺
檬狈膳
疑桶趱
栖贫阗
纬埘栗
葚溉忐
央蔽阝
懋辏跖
翥丰裔
艉搪鼾
梵腿驷
愚镜曝
铩髀岷
愦叭淆
虼塘晃
媲徘瓴
钅猕俏
得贰藏
裰斑榧
眺榇积
涛厄岷
- 5 回答
- 2 关注
- 2132 浏览
添加回答
举报
0/150
提交
取消