请帮忙看这个自行车订单程序,可以编译,但运行出错。谢谢。
#include<stdio.h>/*The purpose of this program is to perform calculations with functions and pointers.*/
main()
{
int hqty, rqty, mqty, tqty, hwsize, rwsize, mwsize, twsize, total_sold;
double hseats, tseats, rupgrade, mupgrade, tupgrade;
double htotal, rtotal, mtotal, ttotal, total, discount, tax, total_order, total_value;
int yyyy, mm, dd; int ccno;
char yn='Y';
while (yn=='Y'||yn=='y')
{
printf("\nCROWN BICYCLE CORPORATION-Manager ");
printf("\nCROWN BICYCLE CORPORATION DATE: 2013/03/08");
get_inputs(&hqty, &rqty, &mqty, &tqty, &hwsize, &rwsize, &mwsize, &twsize, &hseats, &tseats, &rupgrade, &mupgrade, &tupgrade );
htotal=hqty*1000+(hwsize-22)*50+hseats;
rtotal=rqty*1000+(rwsize-22)*50+rupgrade;
mtotal=mqty*1000+(mwsize-22)*50+mupgrade;
ttotal=tqty*1000+(twsize-22)*50+tseats+tupgrade;
total=htotal+rtotal+mtotal+ttotal;
if (total>2000)
{discount=total*0.05;
tax=(total-discount)*0.13;
total_order=total-discount+tax;
printf("\nTOTAL PRICE FOR BIKE %10.2lf$\n", total);
printf("\nDISCOUNT %10.2lf$", discount);
printf("\nTAX (GST 13%) %10.2lf$", tax);
printf("\nTOTAL ORDER %10.2lf$", total_order);
}
else
{
printf("\nTOTAL PRICE FOR BIKE %10.2lf$", total);
printf("\nTAX (GST 13%) %10.2lf$", total*0.13 );
printf("\nTOTAL ORDER %10.2lf$", total*1.13);
}
printf( "\nWould you like to take another order? Y/N\n ");
scanf (" %c", &yn);
if(getchar()=='n')
break;
}
printf("\nPlease input your Credit Card number here to do transaction(last 6 numbers):");
scanf("%6d", &ccno);
printf("\nYour order has completed. Thank you for your shopping at CROWN BICYCLE CORPORATION. Goodbye!\n");
total_sold=hqty+rqty+mqty+tqty;
total_value+=total;
printf("\nSUMMARY for 2013/03/08");
printf("\nTotal number of bikes sold: %d", total_sold);
printf("\nTotal value of bikes sold:%10.2lf\n", total_value);
}
get_inputs(int *hqty, int *rqty, int *mqty, int *tqty, int *hwsize, int *rwsize, int *mwsize, int *twsize,
double *hseats, double *tseats, double *rupgrade, double *mupgrade, double *tupgrade)
{
char yn='Y', choice, yn1, yn2, yn3, yn4, yn5;
while (yn=='Y'||yn=='y')
{
printf("\nBIKE MODELS-CUSTOM MADE ORDER");
printf("\nH for Hybrid-MT");
printf("\nR for Race");
printf("\nM for Mountain");
printf("\nT for Touring");
printf("\nSelect (H, R, M or T only):");
scanf(" %c", &choice);
switch (choice)
{
case ('H'):
printf("\nYour Order for H, please input the number you want to purchase:\n");
scanf("%d", hqty);
printf("\nChoose a wheel size between 22 inch and 36 inch:\n");
scanf("%d", hwsize);
printf("\nDo you want the more comfortable seats? This charge is $50. Please enter your choice? yn1\n");
scanf(" %c", &yn1);
if (yn1=='Y'||yn1=='y')
*hseats=50;
if (yn1=='N'||yn1=='n')
*hseats=0;
break;
case ('R'):
printf("\n Your Order for R, please input the number you want to purchase:\n");
scanf("%d", rqty);
printf("\nChoose a wheel size between 22 inch and 36 inch:\n");
scanf("%d", rwsize);
printf("\nDo you want the upgraded custom gears? This charge is $300. Please enter your choice? yn2\n");
scanf(" %c", &yn2);
if (yn2=='Y'||yn2=='y')
*rupgrade=300;
if (yn2=='N'||yn2=='n')
*rupgrade=0;
break;
case ('M'):
printf("\n Your Order for M, please input the number you want to purchase:\n");
scanf("%d", mqty);
printf("\nChoose a wheel size between 22 inch and 36 inch:\n");
scanf("%d", mwsize);
printf("\nDo you want the upgraded custom gears? This charge is $300. Please enter your choice? yn3\n");
scanf(" %c", &yn3);
if (yn3=='Y'||yn3=='y')
*mupgrade=300;
if (yn3=='N'||yn3=='n')
*mupgrade=0;
break;
case ('T'):
printf("\nYour Order for t, please input the number you want to purchase:\n");
scanf("%d", tqty);
printf("\nChoose a wheel size between 22 inch and 36 inch:\n");
scanf("%d", twsize);
printf("\nDo you want the more comfortable seats? This charge is $50. Please enter your choice? yn4\n");
scanf(" %c", &yn4);
if (yn4=='Y'||yn4=='y')
*tseats=50;
if (yn4=='N'||yn4=='n')
*tseats=0;
printf("\nDo you want the upgraded custom gears? This charge is $300. Please enter your choice? yn5\n");
scanf(" %c", yn5);
if (yn5=='Y'||yn5=='y')
*tupgrade=300;
if (yn5=='N'||yn5=='n')
*tupgrade=0;
break;
default: printf("Invalid choice, please try again.\n\n");
}
getchar();
printf("\nWould you like to select other bike model? Please hit ENTER to continue, n to finish selection. Thank you. (y/n)\n");
if(getchar()=='n')
break;
}
}