2

それで、私はこのプログラムを構築しようとしています。ここでは、ユーザーから合計金額と支払額である金額を入力することを想定しています。これで、残高は 10 ドル、5 ドル、1 ドル、4 分の 1、10 セント硬貨、およびニッケルに分割されます。しかし、以下のプログラム/コードは、残りではなく、残高の 4 分の 1、1 セント硬貨、およびニッケルの合計数を教えてくれます。例えば ​​。合計金額が 5.76 で支払い金額が $15 の場合、ゼロ $10、1 つの $5、4 $1、ゼロ $.25、2 $.10、ゼロ $.05、4 つの $.01 が表示されます。

ここのコードで何が問題なのか教えてください。

4

1 に答える 1

2

最も簡単な解決策は、数値を float として取得し、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);
}
于 2012-09-15T02:03:49.327 に答える