#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美元的鈔票,20s,10s,5s,1s,quarter,dimes,nickels和pennies作爲改變。由於我是編程新手,你看到的代碼是我所知道的。我確實需要改進甚至完全改變它。我真正想要做的是找出我的錯誤,並解決它們。我希望很快就能完成這些代碼。我覺得我很接近,但只是錯過了它。也許我錯了,但這就是我要爲你們所做的。我需要幫助讓這個程序正確打印我的輸出
請將您的程序簡化爲顯示錯誤的最簡單的東西,然後給我們輸入,預期輸出和實際輸出。另請閱讀http://sscce.org – 2012-03-27 01:59:40
印刷「適量的美元」有什麼不好?聽起來不錯。 – 2012-03-27 02:00:22
每當你像這樣對代碼進行格式化時,神會殺死一隻小貓。 – 2012-03-27 02:02:15