已采納回答 / 逆時針行走
printf的%f說明符的確既可以輸出float型又可以輸出double型。根據“默認參數提升”規則(在printf這樣的函數的可變參數列表中,不論作用域內有沒有原型,都適用這一規則)float型會被提升為double型。因此printf()只會看到雙精度數。
2015-02-11
已采納回答 / Fiona0126
首先可以方便后續維護,正如樓上所言,修改時更加方便。也可以提高編碼速度。比如你要寫一個unsigned char的,你可以#define uchar unsigned char.之后可以用uchar代替,你也可以用#define來定義一些小的函數什么的。而且define是在預處理時就展開的,所以會可以提高運行效率。不過還是不建議都用define。代碼安全可維護性好才是重點。。
2015-02-10
已采納回答 / onemoo
你在第一個printf中是用強制類型轉換的方式將num轉換成int型傳入,不過準確的說,在第二個printf中并不存在類型轉換。因為printf中%d代表它希望相應的參數類型為int,如果你傳入的不是int型,一般來說編譯器會給出警告的,通常仍可編譯通過,但是在運行時printf函數仍然把那個參數當作int型來讀取和打印。一般計算機中int和double的存儲方式是不一樣的,所以造成打印出很“奇怪”的數。而那個num2,你用了一個double類型的num來初始化,所以編譯器會先把num轉換成int型來給n...
2015-02-07
已采納回答 / 火Rain
原則上只要頭文件中的“#include”與“<stdio.h>”這倆個你不將其中任何一個拆分或者把倆者換行,倆者間你空多少個空格都是可行的!作者也可以自己在編輯器里面嘗試一下,看下是否如此!
2015-02-07
已采納回答 / Rober_Lin
使用循環計算1-2+3-4+5-6+…-100的值sum記錄錢n個值的和,偶數前的符號為負,所以用了一個變量flag來實現正負號的變換,當i為單數時flag為正,當i為偶數時,flag*-1變為負數,再乘-1又為正數,當循環執行時,判斷循環條件,然后執行求和sun,之后實現flag的變號,和i的自增。直到循環條件不滿足
2015-02-05