在C語言求餘計算時如何判斷乙個數是整數?

時間 2021-05-07 06:36:13

1樓:

intNumType

(char

*Str

)bool

Dot=0;

// 小數點;

char*i

=Str

;charc=

*i;if

('-'==c

)for(;c

=*i;

++i)Dot=1

;// 第1個 '.';

}elseif(

'9'

'0'>c)

}return

(Dot);}

#include

#include

#include

"Smile.h"

intmain

(int

argc

,char

**argv

)case(1

):default:}

}free

(Str

);return0;

}以字串的形式,輸入數字,判斷這是整數,還是小數,還是無效輸入;

朋友如果是,對浮點數取餘,那不是語法錯誤嗎?

2樓:霍工

如果是整型int變數,不存在這個問題。只有float或double型別變數才存在是否是整數的問題,那麼其資料型別強制轉換成long型,再轉換回double與原數比較是否相等即可。不要想的太複雜。

/*以下a改為1.00000試試。注意精度,float只識別總長8位,double是總長16位*/

float a=1.00001;

if( ((double)adouble)((long)a) ) )

printf("yes\n");

else

printf("No\n");

3樓:CNife

從 C 語言本身的標準上來說,「求餘運算子」%本身就要求左右兩邊的運算物件是整數型別,換成浮點數是無法通過編譯的。如果確實需要對浮點數進行求餘運算,可以考慮標準庫中的 fmod 函式。

電腦程式面對的是二進位制編碼後的資料,即便數字也是如此,並不是數學中的數字。

4樓:肖科夫斯基

我大概理解你的意思,是不是比如讓別人輸入某個數字進行求餘,這時候我們要對這個輸入進行判斷是否為整數呢?

其實不管是什麼語言,我們都可以對輸入的內容進行乙個校驗。

當然你沒提到這個是輸入的場景,那直接看變數宣告了……

5樓:Leslie chin

我的專欄哈哈哈,

你進行求餘數,前提就是整數啦。

或者你的問題改為,在求餘之前,怎麼判斷這個數是整數還是小數。。

對計算機來說都一樣,儲存在記憶體都是一堆01,看你怎麼去解釋這塊記憶體,所以啊由你的資料型別決定了。。

或者你這樣搞一下,

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

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

如何用c語言編寫乙個程式,計算float x 0 1與0 1的差值

HOOCCOOH 首先假設題主需要這個差值的十進位制表示。根據 IEEE754 浮點使用的二進位制表示法必定在十進位制下有限位數,直接用 printf 指定位數列印即可。唯一需要注意的是到底需要打多少位才夠。我們知道浮點在計算機中表示為 其中 為尾數字數,為浮點指數。又由於 0 eeimg 1 在十...

如何用C語言畫乙個蘑菇?

冷月i include include int main printf printf n printf printf n printf printf n printf printf n printf printf n printf printf n printf return 0 小時候金字塔就是這...

用c語言編寫乙個計算20億以內各位之和是4的素數,怎樣編寫更快速?

杜紫童 各位之和是4的數字,只有形如以下幾種的數可以滿足 考慮到需要的是素數,並且大於2的素數都是奇數,所以可以把其中的偶數都排除掉,現在只剩下5種 1331 121211 1111 遍歷,不斷向各個位之間插入0,即可產生一系列的數,然後判斷它們是否是素數。舉個例子,對於121 1211021 10...