1樓:匿名使用者
浮點數1小於整數1,所以當輸入0.1時,乘以10後得到1但是while仍然成立會再乘以10,從而輸出10
同樣對浮點數取整時是向下取整,當輸入0.00002時,得到t=2,但是當取整時有可能認為它是小於整數2的,因此會向下取整得到1.這個應該和編譯器內部實現的轉換機制相關吧:)
#include
void main()
2樓:溘泫
應該是跟強制轉換時的保留和省略有關
3樓:
是不是精度造成的...
4樓:匿名使用者
我問了我的計算機系的同學了,這個是因為浮點數在計算的時候會損失精度,損失精度就是浮點數在計算中得出的結果與正確答案有差異
排除掉這種只有一位小數的情況就可以了
**如下
#include
void main()
p=int(t);
if((t-p)==0)
printf("%g,%d",t,p);
else
printf("%g,%g",t,t);}
5樓:
輸入0.002就是你要的結果,應該是四捨五入吧,你在程式裡輸入0.000000007以上就可以了.具體跟編譯器有關!
一道簡單的c語言程式設計題,求解,一道簡單的C語言程式設計題,求解
既然不多於5位那句來個 if a 0 a 10 printf 位數是1 if a 10 a 100 printf 位數是2 if a 100 a 1000 printf 位數是3 if a 1000 a 10000 printf 位數是4 這個很簡單的.就是功能比較雜,做題的話,就寫乙個函式裡吧 簡...
C語言程式設計題4道,簡單,一道簡單的C語言程式設計題
飄渺世間天 include int main include int main char pstr for pstr string sizeof string sizeof string 0 1 pstr string 1 pstr printf c pstr include double sum ...
一道簡單的C語言題目
第一步 for語句中m 0 第二步 switch中case 0 i m 執行之後 m 1 第三步 switch中case 1 j m 執行之後 m 2 第四步 switch中case 2 k m 執行之後 m 3 第五步 switch中case 3 m 執行之後 m 4 第六步 第一次迴圈結束,執行...