我只编写了几个月的代码,并且遇到了我的任务之一的障碍。该描述是传递引用程序C++
“重写与函数给出的钱包porgram执行插入和 删除操作。函数初始化(INT & P,诠释& N,诠释& d, INT & Q)将初始化便士,镍,角钱和宿舍为零。 功能插入(INT & p,诠释& N,诠释& d,诠释& q)将增加便士, 五分,一角硬币和宿舍。函数美元()将返回 美元。函数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";
}
我一直在使用onlinegdb.com被编译我的所有程序因为这是我所有的类需要我使用。当我编译这个程序,我得到
/tmp/ccd19JQt.o: In function `main':
main.cpp:(.text.startup+0x2b): undefined reference to `dollars(int, int, int, int)'
main.cpp:(.text.startup+0x6a): undefined reference to `dollars(int, int, int, int)'
main.cpp:(.text.startup+0xa9): undefined reference to `dollars(int, int, int, int)'
collect2: error: ld returned 1 exit status
d任何人都知道我可以做些什么来让程序编译和运行?非常感谢。
这就是我为什么改变它以使其工作。感谢您的建议。
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";
}
你的方法声明在main中。将它们移出。 –
为什么你将'float total'添加到'dollars'的参数列表中?它应该是你如何使用它的一个局部变量。不是参数。 – StoryTeller
@ DanielA.White - 这是合法的,虽然古怪。 – StoryTeller