我无法编译,这个程序给了我错误。我已经花了3天时间。
C:\南澳\ COS1511 \ TEST.CPP
[警告]在函数`float calcAllowedPerChild(float)'中:
错误C:\ unisa \ COS1511 \ test.cpp:26
类型float ()(float)
和const float
到二进制operator<
#include <iostream>
using namespace std;
const float maxPerUnit = 20000.00;
//minPerChild include a standard gift consisting of a bath towel and facecloft
const float minPerChild = 100.00;
const float maxPerChild = 180.00;
//Depending on the amount the child may also get one or more of the fallowing:
const float TOOTHBRUSH = 29.95;
const float HIGHLIGHTERS = 25.99;
const float CRAYONS = 17.95;
const float NOTEBOOK = 12.95;
const float PEN = 9.99;
//You must add the function calcAllowebPerchild () here
float calcAllowedPerChild ( float nrChildren)
{
float allowedPerChild = maxPerUnit / nrChildren;
if ( allowedPerChild > maxPerChild || calcAllowedPerChild < minPerChild)
return maxPerChild;
else
return minPerChild;
}
int main ()
{
float amtGift; //Allowed amount per child
float amtSpendPerChild = 0.00; //actual amount spend per child
float totalSpend = 0.00; //total spend for one orphanage
float totalAll = 0.00; //total spend for all 4 orphanages
int nrChildren; //number of chldren per orphanage
cout << "Enter the number of children: " << endl;
cin >> nrChildren;
amtGift = calcAllowedPerChild(nrChildren);
cout.setf(ios::fixed);
cout.precision(2);
cout << endl << " Allowable amount per child :R" << amtGift;
cout << endl << endl;
return 0;
}
答案 0 :(得分:5)
你有一个;在calcAllowedPerChild
函数的末尾。
功能应如下所示:
void foo() {
... code ...
}
或:
void foo()
{
... code ...
}
取决于您的编码风格。
修改 - 您还需要更正拼写(maxPerChald)并声明calcAllowedPerChild
:
float calcAllowedPerChild = maxPerUnit / nrChildren;
以及更改calcAllowedPerChild
功能或calcAllowedPerChild
变量的名称。你不能让他们都有相同的名字。
答案 1 :(得分:1)
此功能结束时不应该有;
:
float calcAllowedPerChild ( float nrChildren);
修复此问题,看看会发生什么。
答案 2 :(得分:1)
我建议检查你的分号 - 确保函数声明看起来不像原型。
答案 3 :(得分:1)
float calcAllowedPerChild ( float nrChildren);
// ^ : Error - reomove it.
函数原型以;
但不是函数定义结束。另请查看if
语句条件 -
if ( calcAllowedPerChild > maxPerChild || calcAllowedPerChild < minPerChild)
既然是作业,我会给你一个下一个错误的提示。
提示:每个语句都应以;
结尾。现在检查calcAllowerPerChild
功能。
if ( allowedPerChild > maxPerChild || calcAllowedPerChild < minPerChild)
//^^^^^^^^^^^^^^^^^ Error: Probably you
// meant allowedPerChild. Change it.
答案 4 :(得分:1)
calcAllowedPerChild
存在许多问题 - 应该是:
float calcAllowedPerChild (float nrChildren)
{
float allowedPerChild = maxPerUnit / nrChildren;
if (allowedPerChild > maxPerChild || allowedPerChild < minPerChild)
return maxPerChild;
else
return minPerChild;
}
你这里也有一个错字:
const float maxPerChald = 180.00;
它应该是:
const float maxPerChild = 180.00;
答案 5 :(得分:0)
这一行:
float calcAllowedPerChild ( float nrChildren);
最后不应该有分号。它应该是:
float calcAllowedPerChild ( float nrChildren)
答案 6 :(得分:0)
float calcAllowedPerChild ( float nrChildren);
只需在那行末尾删除分号。这就是编译器试图告诉你什么时候它说你在那行上有一个额外的分号。
答案 7 :(得分:0)
删除;
末尾的分号float calcAllowedPerChild ( float nrChildren);
函数定义不以分号结尾。
答案 8 :(得分:0)
你的代码中有这个错字吗?
const float maxPerChald = 180.00;
删除此行后面的分号:
float calcAllowedPerChild ( float nrChildren);