[英]My program crashes when calling a function in c++
因此我必须执行三个功能:一个询问公司里有多少员工,另一个询问他们错过了多少天,第三个询问平均员工人数除以缺少的天数。我所要做的就是使用cout提示并调用函数。我不确定我是否做对了,但是在计算平均值时会崩溃。
#include <iostream>
#include <iomanip>
using namespace std;
int employee(int employeeNum);
int missingDays(int daysMissing);
double getAvg(int employeeNum,int daysMissing,double average);
int employee(int employeeNum)
{
cout<<"Enter the number of employee in the company.";
cin>>employeeNum;
return employeeNum;
}
int missingDays(int daysMissing)
{
cout<<"Enter the amount of days employees missed during the past year.";
cin>>daysMissing;
return daysMissing;
}
double getAvg(int employeeNum,int daysMissing,double average)
{
average=employeeNum/daysMissing;
return average;
}
int main()
{
int employeeNum,people,missing,daysMissing;
double avg,average;
people=employee(employeeNum);
cout<<"The number of employees in the company is "<<people<<"."<<endl;
missing=missingDays(daysMissing);
cout<<"The number of days employees missed during the past year is "<<missing<<".";
avg=getAvg(employeeNum,daysMissing,average);
cout<<average;
}
让我知道我该怎么做,并感谢您的帮助。
这看起来像是家庭作业,因此您只需要轻推即可。 因此,请注意以下几点:为什么您的函数employee()
和missingDays()
接受参数? 为什么getAvg()
需要3? 您的输入值最终包含哪些变量? 接下来将在哪里使用它们(如果有的话)?
你的问题是这条线
missing=missingDays(daysMissing);
由于某些原因,您有两个变量“ daysMissing”(我不确定为什么首先将其传递给missingDays函数)
在该行之后, missing
将包含值输入,而不是daysMissing
(因为它没有通过引用传递)
您的getAvg函数可能因零除错误而崩溃。
因此,取决于编译器, daysMissing
的值是未定义的或使用0
初始化的。
在函数getAvg
您将employeeNum/daysMissing;
划分employeeNum/daysMissing;
但是您不可以被零除,就这样:)
#include <iostream>
#include <iomanip>
using namespace std;
int employee(int employeeNum);
int missingDays(int daysMissing);
double getAvg(int employeeNum,int daysMissing,double average);
int employee(int employeeNum)
{
cout<<"Enter the number of employee in the company: ";
cin>>employeeNum;
return employeeNum;
}
int missingDays(int daysMissing)
{
cout<<"Enter the amount of days employees missed during the past year: ";
cin>>daysMissing;
return daysMissing;
}
double getAvg(int employeeNum,int daysMissing)
{
if(daysMissing == 0)
{
return 0;
}
return (double)employeeNum/daysMissing;;
}
int main()
{
int employeeNum,people,missing,daysMissing;
double avg,average;
people=employee(employeeNum);
cout<<"The number of employees in the company is: "<<people<<"\n";
missing=missingDays(daysMissing);
cout<<"The number of days employees missed during the past year is: "<<missing<<"\n";
avg=getAvg(people,missing);
cout<<avg;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.