# Calculate total gross pay of 10 employees. (C++ – Array in Struct)

The result of this question, it should have a payroll record consists all of these things. But i have a problem in calculating the TOTAL GROSS PAY FOR ALL EMPLOYEES by using arrays in struct (C++) but I am stuck. The total gross pay should be printed at bottom of the payroll record. I feel like something is missing in my coding but I can`t figure out what that thing is. I only have a problem in finding the total gross pay, others are okay.

```#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double gross;
double sum = 0.0;
double totalGrossPay;
struct GrossPay {
int empID;
string empName;
double chargeHour;
int workingHours;
double grossPay;
};

GrossPay employee;

for (int i = 0; i < 10; i++) {
cout << (i + 1) << "."
<< "Employee Name :";
cin >> employee[i].empName;

cout << "Employee ID :";
cin >> employee[i].empID;

cout << "Employee`s charge rate per hour :";
cin >> employee[i].chargeHour;

cout << "Working hours :";
cin >> employee[i].workingHours;

cout << endl;
}
cout << "Employee IDt"
<< "Employee Namet"
<< "Gross Pay(RM)" << endl;
for (int i = 0; i < 10; i++) {
double gross = employee[i].chargeHour * employee[i].workingHours;
cout << employee[i].empID << "tt" << employee[i].empName << "tt" << gross;
cout << endl;
}
cout << endl;

for (int i = 0; i < 10; i++) {
totalGrossPay = sum + gross[i];
}
cout << "Total gross pay of 10 employees : RM" << totalGrossPay;
return 0;
}
```

You have an uninitialized array

```double gross;
```

So its elements have indeterminate values.

As a result this loop

```for (int i = 0; i < 10; i++) {
totalGrossPay = sum + gross[i];
}
```

invokes undefined behavior.

Also the variable sum has not changed in the preceding code. So its using in this for loop does not make a sense.

Maybe you mean in the body of the loop

```double totalGrossPay = 0.0;

for (int i = 0; i < 10; i++) {
totalGrossPay += gross[i];
}
```

provided that the array gross is filled with values.

It seems that in this for loop

```for (int i = 0; i < 10; i++) {
double gross = employee[i].chargeHour * employee[i].workingHours;
cout << employee[i].empID << "tt" << employee[i].empName << "tt" << gross;
cout << endl;
}
```

you mean elements of the array gross instead of the local variable gross as for example

```for (int i = 0; i < 10; i++) {
gross[i] = employee[i].chargeHour * employee[i].workingHours;
cout << employee[i].empID << "tt" << employee[i].empName << "tt" << gross[i];
cout << endl;
}
```

Also the data member `double grossPay;` of the structure is not used. Maybe instead of the array `gross` you need to fill this data member of elements of the array of structures do not you?