回覆列表
  • 1 # 使用者7356751092903

    先從頭說起

    我應該可以理解為你的意思是 你定義了一個int型別的變數s 然後在輸入的時候輸入了一個實數

    但s仍舊是一個int型整數

    這要從格式化字串說起 即 scanf

    C語言中 是標準輸入(通常是命令列姐買你或類似的文字使用者介面)讀取數字和其他資料型別的資料。

    %lf %d 這類稱為格式化佔位符 就是在輸入的字串中掃描出相應格式的資料

    例如%lf %d在字串開頭掃描出一個雙浮點數 然後將剩餘的字串當字串讀取,直到找到空格、新行或製表符 然後消耗空格直到找到第一個非空白字元,然後消耗掉該字元,最後將剩餘的字元掃描為帶符號的十進位制整數,即int

    所以如果你 輸入了兩個實數 那個第一個實數被掃描然後存入第一個變數,然後第二個實數會被掃描為整數,小數點後未掃描的數字將會被丟棄。

    詳情可以看下scanf的wiki頁

    scanf format string

  • 2 # 掉眼淚的冠軍

    在C語言種,分有符號數和無符號數。每個資料的最高位為符號位,最高位位0表示正數,為1則表示負數。而符號位不算如數字大小裡面。比如8位的整形數,有符號,範圍是-128~127,無符號是0~255.建議去看看資料在記憶體種是怎麼儲存的相關知識

  • 中秋節和大豐收的關聯?
  • 棉類混紡的布料會起球嗎?