當前位置:首頁 » 編程語言 » c語言程序設計自動售貨機代碼
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言程序設計自動售貨機代碼

發布時間: 2022-05-18 09:42:19

1. 自動售貨機c語言編程 急!!

#include "stdio.h"
#include "conio.h"

struct stDrink
{
float fPrice; // 價格
int iLeft; // 剩餘數
};

void Pay(stDrink* pstPay)
{
float fPay = 0.0f;

if ( pstPay->iLeft<=0 )
{
printf("商品已經售完\r\n");
return;
}
while(1)
{
scanf("%f",&fPay);
if ( fPay<pstPay->fPrice )
{
printf("金額不足,請重新付費\r\n");
}
else if ( fPay>pstPay->fPrice)
{
printf("找零錢%.1f元,請收好\r\n",fPay-pstPay->fPrice);
break;
}
else
{
printf("付費成功\r\n");
break;
}
}
pstPay->iLeft--;
}

int main()
{
stDrink stCoca = {2.5f,5}; // 可樂
stDrink stOrage = {3.5f,5}; // 橙汁
stDrink stMilkTea = {5.0f,5}; // 奶茶

char cInput = 0;

while(1)
{
cInput = getch();
switch(cInput)
{
case '1':
// 可樂
printf("可樂2.5元,請付費\r\n");
Pay(&stCoca);
break;
case '2':
// 橙汁
printf("橙汁3.5元,請付費\r\n");
Pay(&stOrage);
break;
case '3':
// 奶茶
printf("奶茶5元,請付費\r\n");
Pay(&stMilkTea);
break;
case '#':
// 設備維修中
printf("設備維修中\r\n");
break;
case 'e':
// 退出程序
return 0;
}
}
return 0;
}

2. C語言編程:自動售貨機

# include <stdio.h>
# include <math.h>
int main(void)
{
int a=1;
int b=6;
int c=4;
float delta;
float x1;
float x2;
delta=b*b-4*a*c;
if (delta>0)
{
x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
printf("解為x1=%f,x2=%f\n",x1,x2);
}
else if (delta==0)
{
x1=(-b)/(2*a);
x2=x1;
printf("x有唯一解x1=x2=%f\n",x1);
}
else
{
printf("無解\n",x1);
}
return 0;

3. 自動售貨機(C語言課程設計)

#include<stdio.h>
main()
{
int x,n,y;
float sum=0.0;
printf("請選擇: 1.日用品 2.文具 3. 食品\n");
scanf("%d",&x);
switch(x)
{
case 1: printf("請選擇:1.牙刷(3.5元/支) 2.牙膏(6.2元支)\n");
printf(" 3.肥皂(2元/塊) 4.毛巾(8.6元/條)\n");
scanf("%d",&y);
printf("數量?");
scanf("%d",&n);
switch(y)/*匹配顧客選擇的具體商品*/
{
case 1: sum=3.5*n ; break;
case 2: sum=6.2*n ; break;
case 3: sum=2*n ; break;
case 4: sum=8.6*n ; break;
}
break;
case 2: printf("請選擇:1.筆( 3元/支) 2.筆記本(1.2元/個)\n");
printf(" 3.文件夾(12元/個) 4.文具盒(8.6元/個)\n");
scanf("%c",&y);
printf("數量?");
scanf("%d",&n);
switch(y)
{
case 1: sum=3*n; break;
case 2: sum=1.2*n; break;
case 3: sum=12*n; break;
case 4: sum=8.6*n; break;
}
break;
case 3: printf("請選擇:1.白糖(3.6元/包) 2.鹽(1元/包)\n");
printf(" 3.餅(2元/個) 4.方便麵(3.6元/條)\n");
scanf("%c",&y);
printf("數量?");
scanf("%d",&n);
switch(y)
{
case 1: sum=3.6*n; break;
case 2: sum=1*n; break;
case 3: sum=2*n; break;
case 4: sum=3.6*n; break;
}
break;

}
printf("總計:%.2f 元\n",sum);
}

4. 自動售貨機系統C語言編程

這個寫起來不難,但是代碼很多,建議你去網路上查查這種課程設計,上面一般是會有部分代碼的,這個用C語言寫起來會很麻煩的,建議使用C++寫會簡單一點

5. 自動售貨機的程序代碼怎麼寫 C語言大作業要交的,大路大神幫幫忙٩( 'ω' )و

整個程序的功能 :

商品入庫 補貨

商品購買 找零

還有亂七八糟的一堆驗證

數據只有結構鏈表存儲,退出不保存,你要寫文件或資料庫保存,你自己寫吧,寫不動了。

演示看下圖:

#include<stdio.h>
#include<string.h>
#include<malloc.h>
#definenameSize21//商品名稱數組大小可修改
typedefstructautoMA
{
char*spName;//商品名
intspNum;//商品數量
floatspValue;//商品價格
structautoMA*next;
}AMA;

AMA*amaNEW,*amaP1,*amaSelect;//定義一個新節點指針首節點指針查找用指針
intcontStrplen(char*p);
inteqStr(char*str1,char*str2);//比較字元串是否相等,相等返回1否則返回0
AMA*selectSP(AMA*AMAhead,char*spName);//通過名稱查找商品有返回節點地址沒有返回NULL
voidinsertSP(AMA*AMAhead,AMA**AMAtail,char*VSPname,intVSPnum,floatVSPvalue);//添加商品如果已有該商品,數量+如果沒有新增
float*buySP(AMA*AMAhead,char*name,intnum,floatpay);//購買返回float數組[2]

intmain()
{
AMA*AMAtail,*AMAhead;//定義一個頭節點指針尾節點指針
float*b,value;
intnum,answer;
charname[nameSize];
amaSelect=(AMA*)malloc(sizeof(AMA));
AMAhead=(AMA*)malloc(sizeof(AMA));
AMAtail=(AMA*)malloc(sizeof(AMA));
AMAhead->next=NULL;

mu:answer=0;
memset(name,0,nameSize);
num=0;
value=0;
printf("=====系統菜單==== ");
printf("補充庫存,輸入1 ");
printf("購買商品,輸入2 ");
scanf("%d",&answer);
if(answer==2&&AMAhead->next==NULL)
{
printf("當前沒有商品庫存,請先補充庫存 ");
gotomu;
}
if(answer==1)
{
printf("輸入ESC00返回菜單 ");
while(1)
{
printf(" 請錄入補充的商品名稱(名稱小於%d個字元,每項空格分隔):",(nameSize-1)/2);
scanf("%s",name);
printf("請錄入補充的數量:");
scanf("%d",&num);
printf("請錄入單價:");
scanf("%f",&value);
if(!eqStr(name,"ESC")||num!=0||value!=0)
{
insertSP(AMAhead,&AMAtail,name,num,value);
}
else
{
printf(" 錄入結束返回主菜單 ");
gotomu;
}
}

}
if(answer==2&&AMAhead->next!=NULL)
{
tb:memset(name,0,nameSize);
num=0;
value=0;
printf("輸入ESC00返回菜單 ");
while(1)
{
printf(" 請輸入要購買的商品名稱(名稱小於%d個字元):",(nameSize-1)/2);
scanf("%s",name);
printf("請輸入要購買的數量:");
scanf("%d",&num);
printf("請輸入支付金額:");
scanf("%f",&value);
if(!eqStr(name,"ESC")||num!=0||value!=0)
{
b=buySP(AMAhead,name,num,value);
switch((int)b[0])
{
case1:
printf(" 購買商品成功,找回零錢%.2f元 ",b[1]);
break;
case2:
printf(" 商品庫存不足,當前剩餘數量%d,請重新選擇商品 ",(int)b[1]);
gototb;
break;
case3:
printf(" 支付金額不足,還需支付%.2f元 ",b[1]);
gototb;
break;
default:
printf(" 發生錯誤!交易失敗! ");
break;
}
free(b);
b=NULL;
}
else
{
printf(" 購買結束返回主菜單 ");
gotomu;
}
}
}return0;
}
intcontStrplen(char*p)//計算字元串指針指向空間的字元串長度並返回長度
{
intlen=0,i=0;
while(p[i]!='')
{
len++;
i++;
}
returnlen;
}
inteqStr(char*str1,char*str2)//比較字元串是否相等,相等返回1否則返回0
{
inti;
if(strlen(str1)!=strlen(str2))
return0;
for(i=0;i<strlen(str1);i++)
{
if(str1[i]!=str2[i])
return0;
}
return1;
}
AMA*selectSP(AMA*AMAhead,char*spName)//通過名稱查找商品有返回節點地址沒有返回NULL
{
if(AMAhead->next==NULL)
{
returnNULL;
}

else
{
AMAhead->next=amaP1;//遍歷查詢前將頭節點鏈表指針重置到首節點為下次查詢准備
while(AMAhead->next!=NULL)
{
if(eqStr(AMAhead->next->spName,spName))
{
returnAMAhead->next;
}
AMAhead=AMAhead->next;
}
}
returnNULL;
}
voidinsertSP(AMA*AMAhead,AMA**AMAtail,char*VSPname,intVSPnum,floatVSPvalue)//添加商品如果已有該商品,數量+如果沒有新增
//參數:頭結點指針地址尾節點指針地址商品名稱
{
amaSelect=selectSP(AMAhead,VSPname);
if(amaSelect!=NULL)//商品已存在數量++核實價格
{
printf(" 商品%s已存在庫存%d個,現添加%d個,現在共有庫存%d個 ",amaSelect->spName,amaSelect->spNum,VSPnum,(amaSelect->spNum)+VSPnum);
(amaSelect->spNum)=(amaSelect->spNum)+VSPnum;
if(amaSelect->spValue!=VSPvalue)
{
printf("--該錄入的價格與原價格不一致,保留原價格,如要更新價格,請在【更新商品信息】功能中修改(該功能暫未實現) ");

}
}
else//新增商品
{
amaNEW=(AMA*)malloc(sizeof(AMA));
amaNEW->spName=(char*)malloc(sizeof(char)*(contStrplen(VSPname)+1));//按照輸入字元串長度申請內存空間大小
strcpy(amaNEW->spName,VSPname);
amaNEW->spNum=VSPnum;
amaNEW->spValue=VSPvalue;
amaNEW->next=NULL;

if(AMAhead->next==NULL)//首次新增該節點為首節點頭結點鏈表指針和尾節點指針均指向該節點首地址
{
amaP1=amaNEW;
AMAhead->next=amaP1;
*AMAtail=amaP1;
}
else//添加到鏈表
{
(*AMAtail)->next=amaNEW;
*AMAtail=amaNEW;
}
printf(" 商品%s,數量%d個,價格%.1f元已添加到販賣機中 ",VSPname,VSPnum,VSPvalue);
}

}
float*buySP(AMA*AMAhead,char*name,intnum,floatpay)//購買返回float數組[2]
//購買商品成功返回[0]=1[1]=找還金額
//失敗庫存不足返回[0]=2[1]=當前庫存
//失敗金額不足返回[0]=3[1]=還需支付金額
//失敗貨物不存在(一般不可能出現)[0]=4[1]=4
{
float*err=(float*)malloc(sizeof(float)*2);
amaSelect=selectSP(AMAhead,name);
if(amaSelect!=NULL)//商品已存在核實數量和價格
{
if((amaSelect->spNum)<num)
{
err[0]=2;
err[1]=(float)(amaSelect->spNum);
}
if((amaSelect->spNum)>=num&&num*(amaSelect->spValue)>pay)
{
err[0]=3;
err[1]=num*(amaSelect->spValue)-pay;
}
if((amaSelect->spNum)>=num&&num*(amaSelect->spValue)<=pay)
{
err[0]=1;
err[1]=pay-num*(amaSelect->spValue);
amaSelect->spNum=amaSelect->spNum-num;
}
}
else
{
err[0]=4;
err[1]=4;
}
returnerr;
}

6. 用c語言編寫自動售貨機程序

#include int main(void){ int i; printf("*******************************\n"); printf("* 可選擇的按鍵: *\n"); printf("* 1. 巧克力 *\n"); printf("* 2. 蛋糕 *\n"); printf("* 3. 可口可樂 *\n"); printf("*******************************\n"); printf("從1~3中選擇按鍵:\n"); scanf("%d", &i); switch(i) { case 1: printf("你選擇了巧克力\n"); break; case 2: printf("你選擇了蛋糕\n"); break; case 3: printf("你選擇了可口可樂\n"); break; default: printf("選擇錯誤\n"); break; } return 0;}

7. 跪求自動售貨機程序,c語言編寫,各位大神幫忙。。。

之前網上找到的 python3.x 實現demo,代碼如下:

參考改為C代碼應該沒什麼問題的

# encoding=UTF-8

loop=True

money=0

while loop:

x = input('提示:請投入金幣,結束投幣請按"q"鍵')

if x=='q':

if money==0:

print('錯誤:您未投入過紙幣,請至少投入一張紙幣後才能選購商品')

else:

print('提示:您已結束投幣,將進入購買商品操作界面')

loop = False

else:

try:

x = int(x)

money+=x

print('提示:您此次投幣',x,'元人民幣,您一共投幣',money,'元人民幣')

except Exception as e:

print('錯誤:您的金幣系統不識別,請重新投幣,謝謝!')

GoodList = {

'可口可樂':2.5,

'果粒橙':3,

'奶茶':1.5,

'加多寶':4,

'紅牛':5.5

}

i=0

print('請選擇商品:')

for x in GoodList:

i+=1

print('編號',i,'商品名稱',x,'價格',GoodList[x])

print

fanwei = range(len(GoodList))

loop = True

while loop:

o = input('提示:請輸入您要購買的商品編號,按"q"鍵結束購買')

if o=='q':

loop = False

else:

try:

o = int(o)

if o>=1 and o<=len(GoodList):

i=0

for x in GoodList:

i+=1

if i==o:

if money>=GoodList[x]:

money -= GoodList[x]

print('提示:您購買的商品是:',x,',價格:',GoodList[x],',您還剩餘:',money,'元人民幣')

if money==0:

loop = False

else:

print('錯誤:您的余額',money,'元已不足購買此商品',x,'[',GoodList[x],'元]')

else:

print('錯誤:您輸入的商品編號不存在,請重新輸入')

except Exception as e:

print('錯誤:請輸入正確的產品編號,謝謝合作!')

if money>0:

print('提示:系統將找您,',money,'元人民幣,歡迎下次光臨')

else:

print('提示:您的余額已用完,歡迎下次光臨')

8. 用C語言編寫自動售貨機

#include<stdio.h>

bool GetCharge(int Sum,int Money);
void Getsmalcharge(int Money,int *ChargeNum);
void main()
{
char state='N';
int Sum=0;
char Pro;
printf("\n********************************\n");
while(true)
{
state='N';
Sum=0;
while(state=='N'||state=='n')
{
printf("\n輸入購買物品(a,b,c):");
scanf("%c",&Pro);
getchar();
switch(Pro)
{
case 'a':
Sum=Sum+1;
break;
case 'A':
Sum=Sum+1;
break;
case 'b':
Sum=Sum+5;
break;
case 'B':
Sum=Sum+5;
break;
case 'c':
Sum=Sum+10;
break;
case 'C':
Sum=Sum+10;
break;
default:
printf("\n輸入物品有誤!!!!\n");
break;
};
printf("\n是否完成(Y/N):");
scanf("%c",&state);
getchar();
}
int Money;
printf("\n購買總價為:%d",Sum);
bool st=false;
while(!st)
{
printf("\n輸入金額:");
scanf("%d",&Money);
getchar();
st=GetCharge(Sum,Money);
};
printf("\n----------------購買結束------------\n");
printf("\n");
printf("\n");
printf("\n");
}
}
//----------------------------------------------------
bool GetCharge(int Sum,int Money)
{
int ChargeNum[4];
for(int i=0;i<4;i++)
{
ChargeNum[i]=0;
}
if(Sum>Money)
{
printf("\n金額不夠,請重新輸入.....");
return false;
}
else if(Sum==Money)
{
printf("\n余額為0");
return true;
}
else
{
int Result=Money-Sum;
Getsmalcharge(Result,ChargeNum);
printf("\n余額為%d元,應找零\n1 元%d張\n2 元%d張\n5 元%d張\n10元%d張\n",Result,ChargeNum[0],ChargeNum[1],ChargeNum[2],ChargeNum[3]);

}//end if
return true;
}
//------------------------------------
void Getsmalcharge(int Money,int *ChargeNum)
{
if(Money<0)
return;
int Sum=Money;
int charge[4]={1,2,5,10};
ChargeNum[3]=Sum/charge[3];
Sum=Sum%charge[3];
ChargeNum[2]=Sum/charge[2];
Sum=Sum%charge[2];
ChargeNum[1]=Sum/charge[1];
Sum=Sum%charge[1];
ChargeNum[0]=Sum/charge[0];
Sum=Sum%charge[0];
}

9. 哥哥,請問下你那個C語言程序編程的那個自動售貨機的代碼還在嗎 我快要答辯了,那是我們的任務。 急求

#include <stdio.h>
#include <stdlib.h>
void change(int x, int y, int z);
int check (char *p);
void alter(int n,int f);
void transform(int x, int y);
void how(int x);

int main()
{
int choice1 = 1, choice2;
int number, cash;
int a;
char p[10];
int x, z;
int c[3], b[2], d[2];
int i;
FILE *fp;
FILE *fp1, *fp2;
FILE *fp3;
FILE *fp4;

do
{
printf(" 歡迎使用本自動售貨機\n");
printf("........................................................................\n");
printf(" 請選擇程序功能\n");
printf("1、庫存查詢\n");
printf("2、商品上架\n");
printf("3、銷售查詢\n");
printf("4、會計查詢\n");
printf("5、結算功能\n");
printf("6、銷售界面\n");
printf("7、退出程序\n");
printf("........................................................................\n");
scanf("%d", &choice1);
switch (choice1)
{
case 1:
printf("庫存查詢\n"); //假設原來庫存都有10件
printf("\n");

fp = fopen("a.txt", "r");
if (fp == NULL)
{
printf("打開文件失敗\n");
return 0;
}

fscanf(fp, "%d", &x);

printf("A存貨還有: %d件\n", x);
fscanf(fp, "%d", &x);
printf("B存貨還有: %d件\n", x);
fscanf(fp, "%d", &x);
printf("C存貨還有: %d件\n", x);
printf("\n\n\n");

printf("請按任意鍵返回上級菜單\n退出程序請按 7\n");
scanf("%d", &choice1);
break;
case 2:
printf("商品上架\n");
printf("\n");
fp = fopen("a.txt", "r");
if (fp == NULL)
{
printf("打開文件失敗\n");
return 0;
}

fscanf(fp, "%d", &x);

printf("A物品需上架: %d件\n", 10-x);
fscanf(fp, "%d", &x);
printf("B物品需上架: %d件\n", 10-x);
fscanf(fp, "%d", &x);
printf("C物品需上架: %d件\n", 10-x);
printf("\n\n\n");

printf("請按任意鍵返回上級菜單\n退出程序請按 7\n");
scanf("%d", &choice1);
break;
case 3:
printf("銷售查詢\n");
printf("\n");

fp = fopen("a.txt", "r");

fscanf(fp, "%d", &x);
printf("A銷售了%d件 銷售額 %d元\n", 10-x, 2*(10-x));
fscanf(fp, "%d", &x);
printf("B銷售了%d件 銷售額 %d元\n", 10-x, 3*(10-x));
fscanf(fp, "%d", &x);
printf("C銷售了%d件 銷售額 %d元\n", 10-x, 6*(10-x));
printf("\n\n\n");
printf("請按任意鍵返回上級菜單\n退出程序請按 7\n");
scanf("%d", &choice1);
break;
case 4:
printf("4、會計查詢\n"); //假設每天 5 元零鈔有50張,1 元零鈔有100張
printf("\n");

fp1 = fopen("a.txt", "r");
if (fp1 == NULL)
{
printf("打開文件失敗\n");

}
i = 0;
while (i<3)
{
fscanf(fp1, "%d", &c[i]);
i++;
}
printf("A物品售出 %d件, 收入 %d元\n", 10 - c[0], (10 - c[0]) * 2);
printf("B物品售出 %d件, 收入 %d元\n", 10 - c[1], (10 - c[1]) * 2);
printf("C物品售出 %d件, 收入 %d元\n", 10 - c[2], (10 - c[2]) * 2);
printf("\n");

fp2 = fopen("b.txt", "r");
if (fp2 == NULL)
{
printf("打開文件失敗\n");

}

i = 0;
while (i<2)
{
fscanf(fp2, "%d", &b[i]);
i++;
}
printf("5 元零鈔剩餘 %d張\n", b[0]);
printf("1 元零鈔剩餘 %d張\n", b[1]);
printf("\n\n\n");
printf("請按任意鍵返回上級菜單\n退出程序請按7\n");
scanf("%d", &choice1);
break;
case 5:
printf("5、結算功能\n");
printf("\n");

fp3 = fopen("c.txt", "r");
if (fp3 == NULL)
{
printf("打開文件失敗\n");

}

fscanf(fp3, "%d", &z);

printf("10元有 %d張\n", z);
printf("\n");

fp4 = fopen("b.txt", "r");
if (fp4 == NULL)
{
printf("打開文件失敗\n");

}
i = 0;
while (i<2)
{
fscanf(fp4, "%d", &d[i]);
i++;
}
printf("5 元零鈔需添加 %d 張\n", 50 - d[0]);
printf("1 元零鈔需添加 %d 張\n", 100 - d[1]);
printf("\n\n\n");

printf("請按任意鍵返回上級菜單\n退出程序請按7\n");
scanf("%d", &choice1);
break;
case 6:
printf("6、銷售界面\n");
printf("...........................................\n");
printf("A物品2元一個,B物品3元一個,C物品6元一個\n");
printf("...........................................\n");
do
{
printf("請選擇你所需的物品 1為A物品 2為B物品 3為C物品6元\n");
scanf("%d", &choice2);
switch (choice2)
{
case 1:
printf("你選擇的是 A 物品\n");
printf("請輸入你所需要的數量:\n");
scanf("%d", &number);
printf("請投入若干10元整鈔並輸入你所投入的錢的多少\n");
scanf("%d", &cash);
how(cash/10);
change(2, number, cash);
alter(number, 1);

printf("如果你不是超級客戶, 請按1\n如果你是超級客戶, 請按2\n");
scanf("%d", &a);
if(a==1)
{
printf("如需繼續購買請按 1 \n");
printf("不需繼續購買請按 4 \n");
scanf("%d", &choice2);
}
if(a==2)
{
printf("請輸入密碼:");//初始密碼為2013441464
scanf("%s", p);

if(check(p) == 2)
{
printf("按4後再按1可以回到主控界面\n");
scanf("%d", &choice2);
}
else
{
printf("密碼錯誤\n");
printf("如需繼續購買請按 1 \n");
printf("不需繼續購買請按 4 \n");
scanf("%d", &choice2);
}
}

break;
case 2:
printf("你選擇的是 B 物品\n");
printf("請輸入你所需要的數量\n");
scanf("%d", &number);
printf("請投入若干10元整鈔並輸入你所投入的錢的多少\n");
scanf("%d", &cash);
how(cash/10);
change(3, number, cash);
alter(number, 2);

printf("如果你不是超級客戶, 請按1\n如果你是超級客戶, 請按2\n");
scanf("%d", &a);
if(a==1)
{
printf("如需繼續購買請按 1 \n");
printf("不需繼續購買請按 4 \n");
scanf("%d", &choice2);
}
if(a==2)
{
printf("請輸入密碼:");//初始密碼為2013441464
scanf("%s", p);

if(check(p) == 2)
{
printf("按4後再按1可以回到主控界面\n");
scanf("%d", &choice2);
}
else
{
printf("密碼錯誤\n");
printf("如需繼續購買請按 1 \n");
printf("不需繼續購買請按 4 \n");
scanf("%d", &choice2);
}
}

break;
case 3:
printf("你選擇的是 C 物品\n");
printf("請輸入你所需要的數量\n");
scanf("%d", &number);
printf("請投入若干10元整鈔並輸入你所投入的錢的多少\n");
scanf("%d", &cash);
how(cash/10);
change(6, number, cash);
alter(number, 3);

printf("如果你不是超級客戶, 請按1\n如果你是超級客戶, 請按2\n");
scanf("%d", &a);
if(a==1)
{
printf("如需繼續購買請按 1 \n");
printf("不需繼續購買請按 4 \n");
scanf("%d", &choice2);
}
if(a==2)
{
printf("請輸入密碼:");//初始密碼為2013441464
scanf("%s", p);

if(check(p) == 2)
{
printf("按4後進行服務選擇\n");
scanf("%d", &choice2);
}
else
{
printf("密碼錯誤\n");
printf("如需繼續購買請按 1 \n");
printf("不需繼續購買請按 4 \n");
scanf("%d", &choice2);
}
}

break;
case 4:
break;
}
system("cls");
}while(choice2!=4);
printf("返回上級菜單並退出購買請按任意鍵\n 退出程序請按7\n");
scanf("%d", &choice1);
break;
case 7:
break;

}
system("cls");
}while (choice1 != 7);
printf("程序結束\n");
return 0;
}
void change(int x, int y, int z)
{
int m;
m = z - ( x * y );
if (m > 5)
{
if((m - 5)==0)
{
printf("需找回你 5 元\n");
transform(1, 0);
}

if((m - 5)==1)
{
printf("需找回你一張5元一張1元\n");
transform(1, 1);
}
if((m - 5)==2)
{
printf("需找回你一張5元兩張1元\n");
transform(1, 2);
}
if((m - 5)==3)
{
printf("需找回你一張5元三張1元\n");
transform(1, 3);
}
if((m - 5)==4)
{
printf("需找回你一張5元四張1元\n");
transform(1, 4);
}
}
else
{
if (m==0)
printf("需找回你0元\n");
if(m==1)
{
printf("需找回你1元\n");
transform(0, 1);
}
if(m==2)
{
printf("需找回你2元\n");
transform(0, 2);
}
if(m==3)
{
printf("需找回你3元\n");
transform(0, 3);
}
if(m==4)
{
printf("需找回你4元\n");
transform(0, 4);
}
}
}

int check(char *p)
{
char a[10]="2013441464";
int i = 0;
int flag=2;
while (p[i] != '\0')
{
if (p[i] != a[i])
flag=1;
i++;
}
return flag;
}
void alter(int n, int f)
{
FILE *fp1, *fp2;
int a[3];
int i;

fp1 = fopen("a.txt", "r");
if (fp1 == NULL)
{
printf("打開文件失敗\n");

}
i = 0;
while (i<3)
{
fscanf(fp1, "%d", &a[i]);
i++;
}

fclose(fp1);
if(f==1)
{
a[0]=a[0]-n;
}
if (f==2)
{
a[1]=a[1]-n;
}
if (f==3)
{
a[2]=a[2]-n;
}

fp2 = fopen("a.txt", "w");
if (fp2 == NULL)
{
printf("打開文件失敗\n");

}
i=0;
while (i<3)
{
fprintf(fp2, "%d\n", a[i]);
i++;
}
fclose(fp2);
}
void transform(int x, int y)
{
FILE *fp1, *fp2;
int a[2];
int i=0;

fp1 = fopen("b.txt", "r");
if (fp1 == NULL)
{
printf("打開文件失敗\n");
}
i = 0;
while (i<2)
{
fscanf(fp1, "%d", &a[i]);
i++;
}

fclose(fp1);
if(y==1)
a[1] = a[1] - 1;
if(y==2)
a[1] = a[1] - 2;
if(y==3)
a[1] = a[1] - 3;
if(y==4)
a[1] = a[1] - 4;
if (x==1)
a[0] = a[0] - 1;
fp2 = fopen("b.txt", "w");
if (fp2 == NULL)
{
printf("打開文件失敗\n");
}
i=0;
while (i<2)
{
fprintf(fp2, "%d\n", a[i]);
i++;
}
fclose(fp2);
}
void how(int x)
{
FILE *fp1, *fp2;
int a;

fp1 = fopen("c.txt", "r");
if (fp1 == NULL)
{
printf("打開文件失敗\n");
}
fscanf(fp1, "%d", &a);
fclose(fp1);
a = a + x;
fp2 = fopen("c.txt", "w");
if (fp1 == NULL)
{
printf("打開文件失敗\n");
}
fprintf(fp2, "%d\n", a);
fclose(fp2);
}

第二個是正確的