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」); HOOCCOOH 首先假設題主需要這個差值的十進位制表示。根據 IEEE754 浮點使用的二進位制表示法必定在十進位制下有限位數,直接用 printf 指定位數列印即可。唯一需要注意的是到底需要打多少位才夠。我們知道浮點在計算機中表示為 其中 為尾數字數,為浮點指數。又由於 0 eeimg 1 在十... 冷月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 小時候金字塔就是這... 杜紫童 各位之和是4的數字,只有形如以下幾種的數可以滿足 考慮到需要的是素數,並且大於2的素數都是奇數,所以可以把其中的偶數都排除掉,現在只剩下5種 1331 121211 1111 遍歷,不斷向各個位之間插入0,即可產生一系列的數,然後判斷它們是否是素數。舉個例子,對於121 1211021 10...如何用c語言編寫乙個程式,計算float x 0 1與0 1的差值
如何用C語言畫乙個蘑菇?
用c語言編寫乙個計算20億以內各位之和是4的素數,怎樣編寫更快速?