我的程序在 c++ 中调用函数时崩溃
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;
但是你不允许除以零,仅此
#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;
}
相关文章:
- 内联映射初始化的动态atexit析构函数崩溃
- C++设置器函数崩溃
- 在C++中删除指针数组时析构函数崩溃
- 使用向量的函数崩溃,调试器说访问冲突读取位置
- 分配内存并在回调时调用C++的 Rust 函数崩溃
- MEX文件实现特征库伪内函数崩溃
- C :复制构造函数崩溃
- 创建'new'实例可以解决析构函数崩溃问题?
- wglCreateContextAttribsARB函数崩溃
- OpenCV 均值函数崩溃,掩码从 OpenCV 阈值函数创建
- 使用Armadillo类型的lambda函数崩溃的未知原因
- 空析构函数崩溃程序:C++
- avformat_open_input函数崩溃
- boost::任何析构函数崩溃
- VS CTP 14的std::线程析构函数崩溃
- 使用std::enable_shared_from_this时,析构函数崩溃
- C++继承虚拟函数崩溃
- 分配空终止符时Windows剪贴板函数崩溃
- 从函数崩溃返回,仅在代码中的某个点之后
- 模板函数崩溃