亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

double temp=11.5;isdigit(temp)是true還是false?

double temp=11.5;isdigit(temp)是true還是false?

C C++
xungeer29 2017-10-08 20:15:35
double temp=11.5;isdigit(temp)? 是true還是false?
查看完整描述

2 回答

已采納
?
望遠

TA貢獻1017條經驗 獲得超1032個贊

isdigit函數有參數為double類型的重載嗎?

int isdigit(char c)-->檢查參數是否為十進制數字字符

查看完整回答
2 反對 回復 2017-10-08
  • xungeer29
    xungeer29
    我遇到一題,答案有 double temp; while(!isdigit(temp));//題目想讓double temp是數字時進入循環 我搞不懂是temp什么情況進入循環,如果是十進制數那返回1還是0? temp=3、3.23、21、21.34時哪幾個可以進入循環
  • 望遠
    望遠
    傳入的double類型數據會被截斷為int類型,在程序內部會根據這個ascii碼來判斷,當且僅當數據為48-57(對應字符0-9)時返回1,否則返回0
?
onemoo

TA貢獻883條經驗 獲得超454個贊

應該是 false

isdigit 的參數是 int 類型,返回類型也是 int。 但其實這個函數是判斷參數值所表示的字符是否為數字字符,所以它只在參數可以表示為字符的時候才能正常工作。 如果判斷不是數字則返回 0。


你這里實際傳入的參數是 double 類型。但是沒關系,實參傳入形參時可以發生自動轉型。那么形參實際接收到 int 值 11。 而 11 通常并不表示數字字符(比如在ASCII中就不表示為數字),所以會返回 0。

如果問是否為 false 的話,那么 0 表示 false。


查看完整回答
1 反對 回復 2017-10-08
  • 2 回答
  • 0 關注
  • 2407 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號