如果用實型變數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 ...