#include <iostream>
#include <iomanip>
#include <cstdlib>
using namespace std;
void userInput(int& Length, char& AuthorLevel);
int main(void)
{
int Length; // The length of the story.
int counter = 0;
int numA = 0;
int numB = 0;
int numC = 0;
char AuthorLevel; // The level of the author.
float PayOut; // The final payout.
float averagePayout = 0.0;
float highestPayout = 0.0;
} //end main()
//==================================================================
// This part collects the inputs.
void userInput(int& Length, char& AuthorLevel )
{
cout << "Please enter the word count of the story (-1 to stop): ";
cin >> Length;
cout << "Now enter the author's level (A, B, or C): ";
cout << "Level: ";
cin >> AuthorLevel;
cout << endl;
};
//==================================================================
int computePay(int& Length, char& AuthorLevel)
{
float PayOut; // The final payout.
int numA = 0;
int numB = 0;
int numC = 0;
float averagePayout = 0.0;
float highestPayout = 0.0;
int counter = 0; // The number of times the program has ran.
if(Length < 7500)
{
PayOut = 0.08 * Length;
}
else if(Length < 8000)
{
PayOut = 600;
}
else if(Length < 17500)
{
PayOut = 0.075 * Length;
}
else if(Length < 19000)
{
PayOut = 1313;
}
else
{
PayOut = 0.07 * Length;
};
if ((AuthorLevel == 'A') || (AuthorLevel == 'a'))
{
PayOut = 1.75 * PayOut;
}
else if(AuthorLevel == 'B' || AuthorLevel == 'b')
{
PayOut = 1.25 * PayOut;
}
else if (AuthorLevel == 'C' || AuthorLevel == 'c')
{
PayOut = 1.00 * PayOut;
};
do
{
userInput(Length, AuthorLevel);
computePay(Length, AuthorLevel);
counter++;
cout << "The amount the author will make from the story will be: $" << PayOut;
cout << endl << endl;
averagePayout = (averagePayout + PayOut) /2;
if(highestPayout < PayOut)
{
highestPayout = PayOut;
}
}
while(Length != -1);
};
//list the number of a b c 's
// for this use if statements to check which was entered and then increment that counter,
// system out the loop counter
//system out average payout and highest
//===================================================
这保持零输出而不是通过计算或要求输入,我老实说我不知道我做错了什么。对于作业,我还必须列出输入的A,B,C和C的数量,记录它循环的次数,计算平均值在每个循环之后支付,并且还表示每个循环之后的最大支付,并且我不太热衷于如何执行任何操作。有人可以帮忙吗?
答案 0 :(得分:2)
您的mouse events
不会调用您定义的任何功能。它只包含变量定义。
由于这是C ++,如果你的main()
没有明确返回,它将返回一个0,这就是你所看到的。
我也不确定你的main()
:它似乎没有返回任何int computePay()
,即使它应该可能吗?或者你希望它是int
?
答案 1 :(得分:0)
您的代码中存在多个问题:
1。)您永远不会在main()
中调用您的任何功能。所以它所做的只是创建一些变量并结束程序。
尝试添加以下内容:
userInput(Length, AuthorLevel);
或
computePay(Length, AuthorLevel);
2。)你的职能int computePay(int& Length, char& AuthorLevel)
&amp; int main()
被声明为返回int,但是你永远不会返回任何内容:这会导致未定义的行为。
只需在函数末尾添加return 0;
- 或者将类型更改为float并返回PayOut
变量。
3。)您在开始时错过了int computePay(int& Length, char& AuthorLevel);
的原型,因此您无法通过主要功能调用它。
4.。)你的comutePay函数将永远不会返回并导致堆栈溢出 - 每次在循环中进行递归调用,这将永远不会结束。
您需要在Length
电话
comutePay
变量