2013年4月5日 星期五

計算機程式作業二

/****************************************************************************
計算機程式作業二  檔名:HW2.c

題目:(第六章實作題第十伍題)
15.    假設在某商店中購物,輸入所應付的金額及實際交給店員的金額,
輸出則為應找回最少的鈔票與錢幣數,如果交給店員的金額少於應付金額,
則印出"金額不夠"字串。舉例來說,我們買了33元(所應付款的金額)的東西,
而交給店員的錢為1000元(實際交給店員的金額),店員應找回一張500元、四張100元、
一個50元硬幣、一個10元硬幣、一個5元硬幣及二個1元硬幣
(假設幣值只有1000、500、100、50、10、5與1元)。
           
程式說明:先使用if和else先區分出錢要找、不用找、不夠錢三種,再從要找錢中分類成
數種錢單位,再用各數學公式解出答案,即完成答案。             
*****************************************************************************/

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int buy,pay,money,thousand,fivehundred,hundred,fiveten,ten,five,one; //設定變數
printf("班級:學號: 店員:\n");
printf("你所應付款的金額:");                      //提示使用者輸入付款的金額
scanf("%d",&buy);
printf("實際交給店員的金額:");                   //提示使用者輸入交給店員的金額
scanf("%d",&pay);
if(pay-buy < 0)                                  //設定分歧點,不夠錢狀況
printf("金額不夠優~");
else{                                            //再分分歧點
money=pay-buy;
if(money == 0)                                   //設定其一狀況,錢剛剛好時
printf("剛好不用找!");
else{                                            //最後狀況,要找錢
thousand=money/1000;                             //測找多少張一千
fivehundred=(money%1000)/500;                    //測找多少張伍百
hundred=((money%1000)%500)/100;                  //測找多少張一百
fiveten=(((money%1000)%500)%100)/50;             //測找多少個五十
ten=((((money%1000)%500)%100)%50)/10;            //測找多少個十塊
five=(((((money%1000)%500)%100)%50)%10)/5;       //測找多少個五元
one=((((((money%1000)%500)%100)%50)%10)%5);      //測找多少個一塊
printf("找1000元%d張\n",thousand);
printf("找500元%d張\n",fivehundred);
printf("找100元%d張\n",hundred);
printf("找50元%d個\n",fiveten);
printf("找10元%d個\n",ten);
printf("找5元%d個\n",five);
printf("找1元%d個\n",one);
}
}
 system("pause");
 return 0;

/*執行結果一*********************************************
班級: 學號: 店員:
你所應付款的金額:10000
實際交給店員的金額:10000
剛好不用找!請按任意鍵繼續 . . .
*********************************************************/
/*執行結果二*********************************************
班級: 學號: 店員:
你所應付款的金額:111
實際交給店員的金額:2345
找1000元2張
找500元0張
找100元2張
找50元0個
找10元3個
找5元0個
找1元4個
請按任意鍵繼續 . . .
*********************************************************/
/*執行結果三*********************************************
班級: 學號: 店員:
你所應付款的金額:123
實際交給店員的金額:99
金額不夠優~請按任意鍵繼續 . . .
*********************************************************/