黃舟2017-04-17 13:47:232樓
注意scanf函數和printf函數是不同尋常的函數,因為它們都沒有將函數的參數限制為固定數量。scanf函數和printf函數又可變長度的參數列表。當調用帶可變長度參數列表的函數時,編譯器會安排float參數自動轉換成為double類型,其結果是printf函數無法區分float型和double型的參數。因此在printf函數調用中%f既可以表示float型又表示double型的參數。
另一方面,scanf函數是通過指針指向變量的。%f告訴scanf函數在所傳地址位置上存儲一個float型值,而%lf告訴scanf函數在所傳地址位置上存儲一個double型值。這里float和double的區別是非常重要的。如果給出了錯誤的轉換說明,那么scanf函數將可能存儲錯誤的字節數量(沒有提到的是,float型的為模式可能不同于double型的位模式)。
答案在此
問之前多搜索一下
如果可以用CPP的話iostream更易用一些
cin>>doubleValue;
cout<< doubleValue;