所以,我正在尝试构建这个程序,我想从用户那里获取一个输入,即总金额和支付金额。现在,余额应细分为 10 美元、5 美元、1 美元、25 美分硬币、10 美分硬币和镍币。但是下面的程序/代码告诉我天平中四分之一、硬币和镍币的总数,而不是剩余的。例如 。如果总金额为 5.76 且已支付金额为 $15,则应显示零 $10、一 $5、4 $1、零 $.25、2 $.10、零 $.05 和四 $.01。
请告诉我这里的代码有什么问题?
最简单的解决方法是将数字作为浮点数,然后将其乘以 100,然后将其保存为 int。
#include <iostream>
using namespace std;
int main ( )
{
float userNUmber;
int change, quarters, dimes, nickels, pennies; // declare variables
cout <<"Enter the amount of money: ";
cin >> userNUmber; // input the amount of change
change = userNUmber * 100;
quarters = change / 25; // calculate the number of quarters
change = change % 25; // calculate remaining change needed
dimes = change / 10; // calculate the number of dimes
change = change % 10; // calculate remaining change needed
nickels = change / 5; // calculate the number of nickels
pennies = change % 5; // calculate pennies
cout << "\nQuarters: " << quarters << endl; // display # of quarters
cout << " Dimes: " << dimes << endl; // display # of dimes
cout << " Nickels: " << nickels << endl; // display # of nickels
cout <<" Pennies: " << pennies << endl; // display # of pennies
system("Pause");
return (0);
}
在循环中也这样做是这样的
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main ( )
{
float userNUmber;
int change, quarters, dimes, nickels, pennies; // declare variables
cout <<"Enter the amount of money: ";
cin >> userNUmber; // input the amount of change
change = userNUmber * 100;
vector<int> coins(4, 0);
coins[0] = 25; coins[1] = 10; coins[2] = 5; coins[3] = 1;
vector<string> coinsName(4, "");
coinsName[0] = "Quaters"; coinsName[1] = "Dimes"; coinsName[2] = "Nickels"; coinsName[3] = "Pennies";
for(size_t i = 0; i < coins.size(); ++i)
{
int numberOfCoins = change / coins[i]; // calculate the number of quarters
change = change % coins[i]; // calculate remaining change needed
cout << coinsName[i] << ": " << numberOfCoins << endl; // display # of quarters
}
system("Pause");
return (0);
}