Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.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++ 通过参考程序c++;_C++ - Fatal编程技术网

C++ 通过参考程序c++;

C++ 通过参考程序c++;,c++,C++,我只写了几个月的代码,但我的一项任务遇到了障碍。描述是 重写给定的钱包程序,并使用函数执行插入和删除操作 删除操作。函数初始化(int&p、int&n、int&d、, int&q)将便士、镍币、一角硬币和四分之一硬币初始化为零。 函数insert(int&p、int&n、int&d、int&q)将添加便士, 镍币、一角硬币和四分之一硬币。函数dollars()将返回 函数remove(int&p,int&n,int&d,int&q)将 减去便士、镍币、一角硬币和四分之一硬币。函数显示() 返回一

我只写了几个月的代码,但我的一项任务遇到了障碍。描述是

重写给定的钱包程序,并使用函数执行插入和删除操作 删除操作。函数初始化(int&p、int&n、int&d、, int&q)将便士、镍币、一角硬币和四分之一硬币初始化为零。 函数insert(int&p、int&n、int&d、int&q)将添加便士, 镍币、一角硬币和四分之一硬币。函数dollars()将返回 函数remove(int&p,int&n,int&d,int&q)将 减去便士、镍币、一角硬币和四分之一硬币。函数显示() 返回一个新字符串,以打印钱包中剩余的内容 便士、五分镍币、一角硬币和四分之一硬币。”

这就是我到目前为止所能想到的

#include <iostream>

using namespace std;

int main()
{
   int pennies, nickels, dimes, quarters, p, n, d, q;
   float total;

   void initialize(int&, int&, int&, int&);
   void insert(int&, int&, int&, int&);
   void remove(int&, int&, int&, int&);
   float dollars(int, int, int, int);
   void print(int, int, int, int, float);


   initialize(pennies, nickels, dimes, quarters);
   total = dollars(pennies, nickels, dimes, quarters);
   print(pennies, nickels, dimes, quarters, total);

   insert(pennies, nickels, dimes, quarters);
   total = dollars(pennies, nickels, dimes, quarters);
   print(pennies, nickels, dimes, quarters, total);

   remove(pennies, nickels, dimes, quarters);
   total = dollars(pennies, nickels, dimes, quarters);
   print(pennies, nickels, dimes, quarters, total);

}
void initialize(int& pennies, int& nickels, int& dimes, int& quarters)

{
    pennies=0;
    nickels=0;
    dimes=0;
    quarters=0;
}

void insert(int& pennies, int& nickels, int& dimes, int& quarters)
{
    int p, n, d, q;
    cout << "Insert pennies, nickels, dimes, and quarters:";
    cin >> p, n, d, q;

    pennies +=p;
    nickels +=n;
    dimes +=d;
    quarters +=q;

}

void remove(int& pennies, int& nickels, int& dimes, int& quarters)
{
    int p, n, d, q;
    cout << "Remove pennies, nickels, dimes, and quarters:";
    cin >> p, n, d, q;

    pennies -=p;
    nickels -=n;
    dimes -=d;
    quarters -=q;

}

float dollars(int pennies, int nickels, int dimes, int quarters, float total)
{
    total= pennies + 5*nickels + 10*dimes + 25*quarters;
    total=(float)total/100;

    return total;
}
void print(int pennies, int nickels, int dimes, int quarters, float total)
{
    cout << quarters << "quarters+ " << dimes << " dimes+" << nickels << " nickels+" << pennies << " pennies= $" << total <<"\n";

}
有人知道我能做些什么来编译和运行这个程序吗?非常感谢你

这就是我如何改变它以使其工作的。谢谢你的建议

int main()
{
   int pennies, nickels, dimes, quarters, p, n, d, q;
   float total;

   void initialize(int&, int&, int&, int&);
   void insert(int&, int&, int&, int&);
   void remove(int&, int&, int&, int&);
   float dollars(int, int, int, int);
   void print(int, int, int, int, float);


   initialize(pennies, nickels, dimes, quarters);
   total = dollars(pennies, nickels, dimes, quarters);
   print(pennies, nickels, dimes, quarters, total);

   insert(pennies, nickels, dimes, quarters);
   total = dollars(pennies, nickels, dimes, quarters);
   print(pennies, nickels, dimes, quarters, total);

   remove(pennies, nickels, dimes, quarters);
   total = dollars(pennies, nickels, dimes, quarters);
   print(pennies, nickels, dimes, quarters, total);

}
void initialize(int& pennies, int& nickels, int& dimes, int& quarters)

{
    pennies=0;
    nickels=0;
    dimes=0;
    quarters=0;
}

void insert(int& pennies, int& nickels, int& dimes, int& quarters)
{
    int p, n, d, q;
    cout << "Insert pennies, nickels, dimes, and quarters:";
    cin >> p>>n>>d>>q;

    pennies +=p;
    nickels +=n;
    dimes +=d;
    quarters +=q;

}

void remove(int& pennies, int& nickels, int& dimes, int& quarters)
{
    int p, n, d, q;
    cout << "Remove pennies, nickels, dimes, and quarters:";
    cin >> p>>n>>d>>q;

    pennies -=p;
    nickels -=n;
    dimes -=d;
    quarters -=q;

}

float dollars(int pennies, int nickels, int dimes, int quarters)
{
    float total;
    total= pennies + 5*nickels + 10*dimes + 25*quarters;
    total=(float)total/100;

    return total;
}
void print(int pennies, int nickels, int dimes, int quarters, float total)
{
    cout << quarters << "quarters+ " << dimes << " dimes+" << nickels << " nickels+" << pennies << " pennies= $" << total <<"\n";

}
intmain()
{
整数便士、五分镍币、一角硬币、四分之一硬币、p、n、d、q;
浮动总额;
无效初始化(int&,int&,int&,int&);
无效插入(int&,int&,int&,int&);
无效删除(int&,int&,int&,int&);
浮动美元(整数,整数,整数,整数);
无效打印(int,int,int,int,int,float);
初始化(便士、镍币、一角硬币、四分之一硬币);
总计=美元(便士、镍币、一角硬币、四分之一硬币);
印刷品(便士、镍币、一角硬币、四分之一硬币、总计);
插入(便士、镍币、一角硬币、四分之一硬币);
总计=美元(便士、镍币、一角硬币、四分之一硬币);
印刷品(便士、镍币、一角硬币、四分之一硬币、总计);
除去(便士、镍币、一角硬币、四分之一硬币);
总计=美元(便士、镍币、一角硬币、四分之一硬币);
印刷品(便士、镍币、一角硬币、四分之一硬币、总计);
}
无效初始化(整数和便士、整数和镍币、整数和一角、整数和四分之一)
{
便士=0;
镍币=0;
十美分=0;
四分之一=0;
}
空白插入(整数和便士、整数和镍币、整数和一角、整数和四分之一)
{
int p,n,d,q;
cout>p>>n>>d>>q;
便士+=便士;
镍币+=n;
十美分+=d;
季度+=q;
}
无效清除(整数和便士、整数和镍币、整数和一角、整数和四分之一)
{
int p,n,d,q;
cout>p>>n>>d>>q;
便士-=p;
镍币-=n;
一角硬币-=d;
季度-=q;
}
浮动美元(整数便士、整数镍币、整数一角硬币、整数四分之一硬币)
{
浮动总额;
总数=便士+5*镍币+10*一角硬币+25*四分之一硬币;
总计=(浮动)总计/100;
返回总数;
}
空白打印(整数便士、整数镍币、整数一角硬币、整数四分之一硬币、浮点数)
{

cout以下是声明:

float dollars(int, int, int, int);
//            1    2    3    4
您已经声明了4个参数

下面是函数调用:

total = dollars(pennies, nickels, dimes, quarters);
//              1        2        3      4
你通过了4个论点。到目前为止还不错

定义如下:

float dollars(int pennies, int nickels, int dimes, int quarters, float total)
//            1            2            3          4             5
{ ...
您已经为5参数函数
美元(int,int,int,int,int,float)
给出了一个定义。链接器错误是因为您调用的
美元(int,int,int,int,int)
缺少定义,但没有定义


解决方案:定义函数
美元(int,int,int,int)

您的方法声明在main中。将它们移出。为什么要将
float total
添加到
美元的参数列表中
?它应该是一个局部变量,取决于您如何使用它。不是一个参数。@DanielA.White-这是合法的,尽管很奇怪。任何将其所有参数作为非常量引用的函数几乎都是无效的完全错误。
main()
中的
dollars()
声明接受4个参数。
dollars()
的定义有5个参数。它们不匹配。请使它们匹配。不必将声明移到
main()
之外,但建议这样做(例如,如果你想让你的函数互相调用的话)。谢谢你的帮助。在你的帮助下,我成功地让程序运行起来。
float dollars(int pennies, int nickels, int dimes, int quarters, float total)
//            1            2            3          4             5
{ ...