【发布时间】:2012-03-27 01:56:21
【问题描述】:
#include <stdio.h> /*printf and scanf option*/
#include <math.h>
void change(double coin_change, int *quarters, int *dimes, int *nickels, int *pennies); /*function protype*/
int main(void)
{
int fifties = 0, twenties = 0, tens = 0, fives = 0, dollars = 0, quarters = 0, dimes = 0, nickels = 0, pennies = 0;
double amt_paid = 0, amt_due = 0, amt_change = 0, coin_change = 0; /*declared avriables*/
printf("Enter the amount paid> "); /*Prompt user to enter amount paid*/
scanf("%lf", &amt_paid);
printf("Enter the amount due> "); /*Prompt user to enter amount due*/
scanf("%lf", &amt_due);
amt_change = amt_paid - amt_due; /*Formula for amount of change to be given*/
dollars = (amt_change);
coin_change = (int)((amt_change - (amt_change)) * 100 + 0.5);
coin_change = coin_change * 100;
printf("\n%f\n", coin_change);
change(coin_change, &quarters, &dimes, &nickels, &pennies);
printf("Change is fifties: %d$, twenties: %d$, tens: %d$, fives: %d$, dollars: %d$, quarters: %d, dimes: %d, nickels: %d,\
pennies: %d", fifties, twenties, tens, fives, dollars, quarters, dimes, nickels, pennies);
return(0);
}
void change(double coin_change, int *quarters, int *dimes, int *nickels, int *pennies)
{
int q = 1, d = 1, n = 1, p = 1;
do {
if(coin_change >= 25){
*quarters = *quarters + q;
coin_change = coin_change - 25;
}
else if (coin_change >= 10) {
*dimes = *dimes + d;
coin_change = coin_change - 10;
}
else if (coin_change >= 5) {
*nickels = *nickels + n;
coin_change = coin_change - 5;
}
else if (coin_change >= 1) {
*pennies = *pennies + p;
coin_change = coin_change - 1;
}
} while (coin_change >= 1);
}
对不起,我第一次不是很清楚。我需要的是创建一个基本上是收银机程序的东西。当给定到期金额和用户支付的金额时,我应该收到输出,告诉我我应该收到多少张 50 美元、20 美元、10 美元、5 美元、1 美元、25 美分硬币、10 美分硬币、5 美分硬币和硬币作为找零。由于我是编程新手,因此您看到的代码是据我所知。我确实需要改进甚至完全改变它。我真正想做的是找出我的错误,并纠正它们。我希望尽快完成此代码。我觉得我很亲近,但只是想念它。也许我错了,但这就是我来找你们的目的。
【问题讨论】:
-
请把你的程序简化为最简单的能证明错误的东西,然后给我们输入、预期输出和实际输出。另请阅读sscce.org
-
打印“适量的美元”有什么不好?听起来不错。
-
每次你这样格式化代码,上帝都会杀死一只小猫。
-
如果这是作业,请标记它。
-
这东西是干什么用的?
(int)((amt_change - (amt_change)) * 100 + 0.5)
标签: c