電腦遊戲製作開發設計論壇 首頁 電腦遊戲製作開發設計論壇
任何可以在PC上跑的遊戲都可以討論,主要以遊戲之製作開發為主軸,希望讓台灣的遊戲人有個討論、交流、教學、經驗傳承的園地
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入 

Google
[C][入門]搞不太懂 %d 與 %0.0f 的差別

 
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式初級班:語法及基礎概念
上一篇主題 :: 下一篇主題  
發表人 內容
gardenwo
稍嫌羞澀的路人


註冊時間: 2008-06-25
文章: 2

0.00 果凍幣

發表發表於: 2008-6-25, AM 11:31 星期三    文章主題: [C][入門]搞不太懂 %d 與 %0.0f 的差別 引言回覆

剛買了一本書學習C語言,在用DEV-C++學習。遇到裡面的練習題:要輸入5000以上的話,超過5000的部分打8折。輸入超過10000,除了前面打8折的部分,超過10000的部分再打7折……還寫的出來。

可是起先下面程式紅色的地方,我是用%d,執行程式以後都是出來0元。改用%0.0f以後才正常。

想請教%d不是應該可以顯示10進位整數?為何都是出來0元啊?是不是%d有什麼使用限制?表示一般的數字,是不是使用%f比較好啊?

不好意思,可能問的很笨。我才剛學,實在搞不太懂。

#include<stdio.h>
#include<stdlib.h>
int main(){
int a;
L1:printf("請輸入購買金額~\n");
scanf("%d",&a);
if (a<=5000) printf("你需付%d元!\n",a);
else {
if (a<=10000) printf("你需付%0.0f元!\n",(a-5000)*0.8+5000);
else printf("您需付%0.0f元!\n",(a-10000)*0.7+(5000*0.8 )+5000);
}
goto L1;
system("pause");
}
回頂端
檢視會員個人資料 發送私人訊息
還是零分
散播福音的祭司


註冊時間: 2007-09-19
文章: 164

653.83 果凍幣

發表發表於: 2008-6-25, PM 2:20 星期三    文章主題: 引言回覆

即使輸入的數字是整數
輸出的數字也是整數
但計算過程有用到小數
所以輸出的還是float資料型態(即使樣子是整數)

如果確定輸出的數還是個整數
例如輸入你說的10000
則可以這樣寫

代碼:
int main()
{
   int a;
L1:
   printf("請輸入購買金額~\n");
   scanf("%d",&a);
   if (a<=5000) printf("你需付%d元!\n",a);
   else
   {
      if (a<=10000) printf("你需付%d元!\n",(int)((a-5000)*0.8+5000));
      else printf("您需付%d元!\n",(int)((a-10000)*0.7+(5000*0.8 )+5000));
   }
   goto L1;
   system("pause");
}


這樣子輸出的9000還是int資料型態
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
babu61509
散播福音的祭司


註冊時間: 2007-08-26
文章: 142

681.01 果凍幣

發表發表於: 2008-6-30, AM 10:22 星期一    文章主題: Re: [C][入門]搞不太懂 %d 與 %0.0f 的差別 引言回覆

%d <-- 用來輸出整數用的
%f <-- 用來輸出浮點數(就是有小數點的值)用的

另外只要有牽扯到浮點數的運算,運算結果都會變成浮點數.

至於為什麼 整數 和 浮點數 要用不同控制元去輸出,是因為在電腦裡面的存取格式不一樣.
詳細請參考 計算機概論 (偷懶 XD

_________________
已經畢業了!!
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式初級班:語法及基礎概念 所有的時間均為 台灣時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
可以 在這個版面附加檔案
可以 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作