C語言 如何用C語言判斷乙個數是不是整數

2021-07-27 05:57:24 字數 885 閱讀 3335

如果用實型變數x接收乙個數或通過計算得到乙個數後要知道它是不是整數

,沒有很好的辦法

.因為實數在計算機中不能準確的儲存

,所以不能直接判斷兩個實型量是否相等

,(實型和整形是不能直接比較的

,要做一步型別轉換才能比較

)首先要明確

能允許的誤差是多少.比如

,一般情況當誤差的絕對值小於

10-8

時我們可以認為兩個實數是相等的.

第一種方法:

#include #include float x;

...if(fabs(x-(int)x)<1e-8) printf(「x是乙個整數\n」);

else printf(「x不是乙個整數\n」);

第二種方法 :

int c = (int)b,d = (int)(b + 0.999999)

if( c == d )

printf(「是整數\n」);

else

printf(「不是整數\n」);

第三種方法 :

float b;

...if(b - (int)b == 0)

printf(「是整數\n」);

else

printf(「不是整數\n」);

第四種方法 :

float b;

...

if( b != (int)b )

printf(「不是整數\n」);

else

printf(「是整數\n」);

如何判斷乙個數是否是質數(C語言) 超詳細

質數是只能被1或者自身整除的自然數 不包括1 稱為質數。判斷是否是質數最直觀和簡單的方法就是從2開始直接除,能除盡 餘數為0 就不是質數。則c語言實現為 int isprime int m 該演算法的時間複雜度o n 可以改進一下,根據如果乙個數是合數,那麼它的最小質因數肯定小於等於它的平方根 用反...

C語言 判斷乙個數是不是回文數

所謂回文數,就是說乙個數字從左邊讀和從右邊讀的結果是一模一樣的,例如12321。判斷給出的整數是否是回文數 若是,則輸出該整數各位數字之和 否則輸出該數不是乙個回文數。原理大致為 任何乙個數除以10的餘數就是該數最後一位 任何乙個數除以10的商就是排除掉最後一位後的數 所以 乙個數1234 就可以通...

C語言判斷乙個數是否為素數

素數又稱質數。所謂素數是指除了1和它本身以外,不能被任何整數整除的數,例如17就是素數,因為它不能被2 16的任一整數整除。思路1 因此判斷乙個整數m是否是素數,只需把m被 2 m 1 之間的每乙個整數去除,如果都不能被整除,那麼m就是乙個素數。思路2 另外判斷方法還可以簡化。m不必被 2 m 1 ...