簡體   English   中英

在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;划分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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM