一道簡單C語言解惑

時間 2022-06-25 05:50:04

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 第六步 第一次迴圈結束,執行...