台灣最大程式設計社群網站
線上人數
1112
 
會員總數:245123
討論主題:189032
歡迎您免費加入會員
討論區列表 >> C/C++ >> 用C++製作一個換零錢程式請高手來幫我看看程式碼哪裡錯了
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
用C++製作一個換零錢程式請高手來幫我看看程式碼哪裡錯了
價值 : 20 QP  點閱數:4284 回應數:3

樓主

阿志
門外漢
0 13
356 36
發送站內信

有限定只能接受100、200、500、1000的鈔票
選擇你要換的零錢1元、5元、10元、50元並說出要換幾個
例如以100元換10個1元,結果顯示出10個1元、1個50元、4個10元
我C++剛學幾個月還不成才,希望高手多指點
#include<stdio.h>
void change(int);
void money(int);
int main(void)
{
int fifty,ten,five,one,a,b,c,d;
change(a);
money(b);
printf("請輸入你要悅換幾個?\n");
scanf("%d",&c);
d=a-b*c;
fifty=d/50;
ten=fifty/10;
five=ten/5;
one=five/1;
if (b==1)
one+=c;
if (b==5)
five+=c;
if (b==10)
ten+=c;
if (b==50)
fifty+=c;
printf("你悅換的零錢為%d個50元%d個10元%d個5元%d個1元",fifty,ten,five,one);
}
void money(int b)
{
printf("請輸入你要悅換的零錢?\n");
printf("1.1元 2.5元 3.10元 4.50元");
scanf("%d",&b);
if (b>1 || b<4)
switch(b)
{
case 1:
b=1;
case 2:
b=5;
case 3:
b=10;
case 4:
b=50;
}
}
void change(int a)
{
int b;
printf("請輸入你要用多少元鈔票悅換?\n");
printf("1.100元 2.200元 3.500元 4.1000元");
scanf("%d",&a);
if (a>1 || a<4)
switch(a)
{
case 1:
a=100;
case 2:
a=200;
case 3:
a=500;
case 4:
a=1000;
}
}

搜尋相關Tags的文章: [ 零錢 ] ,
本篇文章發表於2005-05-13 16:49
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

給肉
檢舉此回應
隨便寫寫,隨便看看,參考參考。
#include <stdio.h>

int change();
int money();

int main(void)
{
  int fifty, ten, five, one;
  int a, b, c, d;

  a=change();
  b=money();
  printf("請輸入你要悅換幾個?\n");
  scanf("%d",&c);
  d=a-b*c;
  fifty=d/50;
  d-=fifty*50;
  ten=d/10;
  d-=ten*10;
  five=d/5;
  d-=five*5;
  one=d/1;
  if ( b == 1 )
    one+=c;
  if ( b == 5 )
    five+=c;
  if ( b == 10 )
    ten+=c;
  if ( b == 50 )
    fifty+=c;
  printf("你悅換的零錢為 %d個50元, %d個10元, %d個5元, %d個1元", fifty, ten, five, one);
}
int money()
{
  int i;

  printf("請輸入你要悅換的零錢?\n");
  printf("1.1元 2.5元 3.10元 4.50元\n");
  scanf("%d",&i);
  if ( i > 1 || i < 4 )
    switch(i)
    {
      case 1:
        return 1;
      case 2:
      return 5;
      case 3:
      return 10;
      case 4:
      return 50;
    }
  }
int change()
{
  int i;

  printf("請輸入你要用多少元鈔票悅換?\n");
  printf("1.100元 2.200元 3.500元 4.1000元\n");
  scanf("%d",&i);
  if ( i > 1 || i < 4 )
  {
    switch(i)
    {
      case 1:
      return 100;
      case 2:
      return 200;
      case 3:
      return 500;
      case 4:
      return 1000;
    }
  }
}


本篇文章回覆於2005-05-14 06:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

給肉
檢舉此回應
修正2
/*
 * Doctype: ANSI/ISO C89
 * Content: 
 * 	chm(CHange Money)
 */
#include <stdio.h>

int change();
int money();

int main(void)
{
  int fifty, ten, five, one;
  int chg, mny, c, d;

  if ( EOF == (chg=change()) );
    return 1;	/* EOF define -1 */
  if ( EOF == (mny=money()) );
    return 1;	/* EOF define -1 */
  printf("請輸入你要悅換幾個?\n");
  scanf("%d",&c);
  d=chg-mny*c;
  fifty=d/50;
  d-=fifty*50;
  ten=d/10;
  d-=ten*10;
  five=d/5;
  d-=five*5;
  one=d/1;
  if ( mny == 1 )
    one+=c;
  if ( mny == 5 )
    five+=c;
  if ( mny == 10 )
    ten+=c;
  if ( mny == 50 )
    fifty+=c;
  printf("你悅換的零錢為 %d個50元, %d個10元, %d個5元, %d個1元\n", fifty, ten, five, one);
  return 0;	/* return 0 to shell */
}
int money()
{
  int i;

  printf("請輸入你要悅換的零錢?\n");
  printf("1.1元 2.5元 3.10元 4.50元\n");
  scanf("%d",&i);
  if ( i > 1 || i < 4 )
  {
    switch(i)
    {
      case 1:
        return 1;
      case 2:
	return 5;
      case 3:
	return 10;
      case 4:
	return 50;
    }
  }
  else
    return EOF;	/* EOF define -1 */
}
int change()
{
  int i;

  printf("請輸入你要用多少元鈔票悅換?\n");
  printf("1.100元 2.200元 3.500元 4.1000元\n");
  scanf("%d",&i);
  if ( i > 1 || i < 4 )
  {
    switch(i)
    {
      case 1:
	return 100;
      case 2:
	return 200;
      case 3:
	return 500;
      case 4:
	return 1000;
    }
  }
  else
    return EOF;	/* EOF define -1 */
}


本篇文章回覆於2005-05-14 06:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

給肉
檢舉此回應
先這樣。
fix2: 邏輯有誤
fix3
/*
 * Doctype: ANSI/ISO C89
 * Content: 
 * 	chm(CHange Money)
 */
#include <stdio.h>

int change();
int money();

int main(void)
{
  int fifty, ten, five, one;
  int chg, mny, c, d;

  chg=change();
  mny=money();
  printf("請輸入你要悅換幾個?\n");
  scanf("%d",&c);
  d=chg-mny*c;
  fifty=d/50;
  d-=fifty*50;
  ten=d/10;
  d-=ten*10;
  five=d/5;
  d-=five*5;
  one=d/1;
  if ( mny == 1 )
    one+=c;
  if ( mny == 5 )
    five+=c;
  if ( mny == 10 )
    ten+=c;
  if ( mny == 50 )
    fifty+=c;
  printf("你悅換的零錢為 %d個50元, %d個10元, %d個5元, %d個1元\n", fifty, ten, five, one);
  return 0;	/* return 0 to shell */
}
int money()
{
  int i;

  do
  {
    printf("請輸入你要悅換的零錢?\n");
    printf("1.1元 2.5元 3.10元 4.50元\n");
    scanf("%d",&i);
    switch(i)
    {
      case 1:
        return 1;
      case 2:
        return 5;
      case 3:
        return 10;
      case 4:
        return 50;
    }
  } while ( !(i > 0 && i < 4+1) );	/* 選擇其他則再選 */
}
int change()
{
  int i;

  do
  {
    printf("請輸入你要用多少元鈔票悅換?\n");
    printf("1.100元 2.200元 3.500元 4.1000元\n");
    scanf("%d",&i);
    switch(i)
    {
      case 1:
        return 100;
      case 2:
        return 200;
      case 3:
        return 500;
      case 4:
        return 1000;
    }
  } while ( !(i > 0 && i < 4+1) );	/* 選擇其他則再選 */
}


本篇文章回覆於2005-05-14 07:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.