[英]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.