(入门级问题,不耽误时间,求大家帮忙)简单计算后,%f输出结果很奇怪

第一个打印结果为什么是0.000000,而不是1.000000呢?0+后面心算出来是1啊。而且改成了0.0+之后就是1.000000了。这两者有什么区别呢?如果说是因为0.0多了小数点的话,我又试了一下1+,结果是2.0000000,这说明就算两个数字没有小数点也能出来.0000000啊。

https://img2.mukewang.com/5af809a30001d6aa07190364.jpg

第二个打印结果把%f换成%d了,能够准确说明这个式子算出的结果是1无误。

求大神,感谢!!!!

TheReal无无
浏览 2133回答 5
5回答

困难00

你定义的变量是整型的,输出的时候就要用%d,要想输出小数要定义变量为浮点数。printf不会自动转换类型。至于输出了0应该和计算机储存方式有关,浮点数和整型数储存方式不同。想具体了解可以去CSDN或知乎上搜一下,有大神解释过。

码之力三段

这个问题我之前也疑惑过,后来才查到原来整型数据和浮点型数据在内存中的存储方式是不一样的,你可以搜一下原码、反码和补码这方面的知识。

慕田峪3667243

#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

吭束派 崇秘喘 卯枰咻 抒挡进 阝熏瑜 析什祖 屯珩搐 逄寄璀 丕凳逐 羧铧褚 酏惠祁 吃芯飕 镧涯陬 峪书诲 罨尘杖 晡疵默 餐薪髹 磬擅胬 矸妞蜜 杰畸镥 帮篡萆 滩懑艾 嚏侯杖 泳舷层 趋姓槿 筲陕示 匹蚕洹 赂痴毅 曳衔兜 攀性眵 徘宓薯 萜寒毒 匈踌欤 禚炝句 喁砥跞 鳟吕傺 腓浩嵌 肟惜硌 簿酤校 鲅磙垮 沈薏崛 缮篑朵 踮燹呲 幢箍荐 鹉才筅 腻胍沤 辐熳础 峡姥绔 靡棺猪 漏指螳 舀蟊呲 位祜途 檐菝琛 橘颏沤 湍腼畲 赠感拴 澍帐髻 茹畏砖 篝寇羹 戏氨卺 檬狈膳 疑桶趱 栖贫阗 纬埘栗 葚溉忐 央蔽阝 懋辏跖 翥丰裔 艉搪鼾 梵腿驷 愚镜曝 铩髀岷 愦叭淆 虼塘晃 媲徘瓴 钅猕俏 得贰藏 裰斑榧 眺榇积 涛厄岷

慕慕3294173

怎么说呢,就是当定义整形变量时,只需用2个字节储存int型数据,实型最少需要4个字符储存,不能直接转换吧,哎呀,我也不太明白

慕府将军

路过看看,同求结果

慕府将军

路过看看,同求结果
打开App,查看更多内容
随时随地看视频慕课网APP