2013-03-25 89 views
0

在我的程序中,它首先要求雇员的数量。 if循环说,如果输入是输入< 1输出说“请输入一个值至少1”。如果输入0或-1,则输出供用户纠正,但只能执行一次。所以如果用户输入-1两次,它将会第二次运行。它也用第二个if循环来做到这一点。C++ if循环和函数

#include <iomanip> 
#include <iostream> 

using namespace std; 

int getNumEmployees(); 
int getDaysMissed(int); 
double getAverageDays(int,int); 

int main() 
{ 
    int numEmployees; 
    int daysMissed; 
    double average; 

    //Get the number of employees 
    numEmployees = getNumEmployees(); 

    //Get the number of days missed 
    daysMissed = getDaysMissed(numEmployees); 

    //Get the average days missed 
    average = getAverageDays(numEmployees, daysMissed); 

    cout << "The average number of days missed is: " << average << endl; 

    system("pause"); 
    return 0; 
} 

int getNumEmployees() 
{ 
    int employeeNum; 

    cout << "Enter the number of company employees: "; 
    cin >> employeeNum; 

    if(employeeNum < 1) 
    { 
     cout << "Please enter a value greater than 0 " << endl; 
     cin >> employeeNum; 
    } 

    return employeeNum; 
} 


int getDaysMissed(int employeeNum) 
{ 
    int totalDays = 0; 
    int employee; 

    for(int count = 1; count <= employeeNum; count++) 
    { 
     cout << "Enter the number of days employee " << count << " missed: "; 
     cin >> employee; 
     if(employee < 0) 
     { 
      cout << "Enter a positive number for days missed " <<  endl; 
      cin >> employee; 
     } 

     totalDays += employee; 
    } 
    return totalDays; 
} 

double getAverageDays(int employeeNum, int totalDays) 
{ 
    double averageDays; 
    averageDays = totalDays/employeeNum; 
    return averageDays; 
} 
+5

有没有这样的事情,如果循环。 – chris 2013-03-25 22:02:01

+0

一个'if'不是一个循环。 – 2013-03-25 22:02:31

+1

是的,答案在这个问题上! – 2013-03-25 22:03:24

回答

2

更改此:

if(employeeNum < 1) 

这样:

while(employeeNum < 1) 

你想要循环。正如chris提到的,if不会循环。

+0

哇感谢我感到愚蠢,我不知道为什么我这样做谢谢 – user1807815 2013-03-25 22:05:27