Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ IntelliSense:函数调用中的参数太少_C++ - Fatal编程技术网

C++ IntelliSense:函数调用中的参数太少

C++ IntelliSense:函数调用中的参数太少,c++,C++,我正在为一个类编写一个程序,该类计算销售金额,并计算一美元的变化。每种面额都列出了硬币的数量作为输出。由于参数太少的错误,我无法运行它 我不确定VB在这里寻找什么。任何帮助都将不胜感激 程序代码: #include <iostream> #include <string> #include <sstream> #include <iomanip> #include <cmath> using namespace std; // De

我正在为一个类编写一个程序,该类计算销售金额,并计算一美元的变化。每种面额都列出了硬币的数量作为输出。由于参数太少的错误,我无法运行它

我不确定VB在这里寻找什么。任何帮助都将不胜感激

程序代码:

#include <iostream>
#include <string>
#include <sstream>
#include <iomanip>
#include <cmath>

using namespace std;

// Determines how many of each coin to dispense.
void Dispenser(int, int *, int *, int *, int *);                                    



int main(void)
{
    // Change the console's background color.
    system ("color F0");

        // Declares the variables.
        double amount_paid = 1.00, amount_due;                                                             
        int amount_left, dollar_qty, quarter_qty, dime_qty, nickel_qty, penny_qty; 

    // Get user input.
    cout << "\n";
    cout << "Enter the money amount paid: $";
        cin >> amount_due;
    cin.ignore();

    // Perform calculations.
    amount_paid = amount_paid * 100 + 0.5;
        amount_due = amount_due * 100;

        amount_left = amount_paid - amount_due;
        dollar_qty = amount_left / 100;

        Dispenser (amount_left + quarter_qty + dime_qty + nickel_qty + penny_qty);

        "\n";


        // Display output.
        cout << "\nAmount of the purchase: " << fixed << setprecision(2) << showpoint        << amount_due;
        cout << "\nChange from $1.00: " << fixed << setprecision(2) << showpoint <<      amount_left;
        cout << "\n" << fixed << setprecision(2) << showpoint << dollar_qty << "      dollars";
        cout << "\n" << fixed << setprecision(2) << showpoint << quarter_qty <<       "quarters";
        cout << "\n" << fixed << setprecision(2) << showpoint << dime_qty << "dimes";
        cout << "\n" << fixed << setprecision(2) << showpoint << nickel_qty <<      "nickles";
        cout << "\n" << fixed << setprecision(2) << showpoint << penny_qty <<      "pennies";

    system("pause");
        return 0;   
}

void Dispenser(int amt_left, int *quarters, int *dimes, int *nickels, int *pennies)
{
    int    total_change, total_quarters, total_dimes, total_nickels, total_pennies;

    // Determine change amount by quantity.

    total_change = amt_left % 100;
    total_quarters = total_change / 25;
    total_change = total_change % 25;
    total_dimes = total_change / 10;
    total_change = total_change % 10;
    total_nickels = total_change / 5;
    total_change = total_change % 5;
    total_pennies = total_change;

    *quarters = total_quarters;
    *dimes = total_dimes;
    *nickels = total_nickels;
    *pennies = total_pennies;
}

您使用了“+”而不是“,”

Dispenser (amount_left + quarter_qty + dime_qty + nickel_qty + penny_qty);
Dispenser (amount_left + quarter_qty + dime_qty + nickel_qty + penny_qty);
应该是

Dispenser (amount_left, quarter_qty, dime_qty, nickel_qty, penny_qty);
Dispenser (amount_left, &quarter_qty, &dime_qty, &nickel_qty, &penny_qty);
您的版本实际上只是一个将所有值相加的大参数,而我提供的一个带有逗号的参数意味着它是5个单独的参数被发送到函数中

应该是

Dispenser (amount_left, quarter_qty, dime_qty, nickel_qty, penny_qty);
Dispenser (amount_left, &quarter_qty, &dime_qty, &nickel_qty, &penny_qty);

基函数需要一个内存地址,并且&将该地址而不是变量的值发送给该函数。