This is some code I have been working on. It is a menu with an option to input employee information and a table to view it in. The code works for the most part - except after you have filled the maximum number of employees and attempt to insert another one and the correct error message appears. Then, when the option is selected to display the employee's information, it will only correctly show the last employee entered and the rest will all be 0s. I haven't the foggiest where the issue is. Any hint would be appreciated. I am not asking for the answer I'm asking to be pointed to the section of the code that is causing this extremely specific issue. To narrow it down.
#define _CRT_SECURE_NO_WARNINGS
#define SIZE 2
#include
// Define Number of Employees "SIZE" to be 2
// Declare Struct Employee
struct Employee {
int id, age;
double salary;
};
/* main program */
int main(void) {
int option = 0;
// Declare a struct Employee array "emp" with SIZE elements
// and initialize all elements to zero
struct Employee emp[SIZE] = { { 0 } };
int counter = 0;
int employeesNumber = 0;
printf("---=== EMPLOYEE DATA ===---nn");
do {
// Print the option list
printf("1. Display Employee Informationn");
printf("2. Add Employeen");
printf("0. Exitnn");
printf("Please select from the above options: ");
// Capture input to option variable
scanf("%d", &option);
printf("n");
switch (option) {
case 0: // Exit the program
break;
case 1: // Display Employee Data
// @IN-LAB
printf("EMP ID EMP AGE EMP SALARYn");
printf("====== ======= ==========n");
// Use "%6d%9d%11.2lf" formatting in a
// printf statement to display
// employee id, age and salary of
// all employees using a loop construct
if (emp[0].id > 0) {
for (counter = 0; counter < SIZE; counter++)
printf("%6d%9d%11.2lfn", emp[counter].id, emp[counter].age, emp[counter].salary);
printf("n");
}
// The loop construct will be run for SIZE times
// and will only display Employee data
// where the EmployeeID is > 0
break;
case 2: // Adding Employee
// @IN-LAB
printf("Adding Employeen");
printf("=============== ");
// Check for limits on the array and add employee
// data accordingly.
if (employeesNumber < SIZE) {
printf("nEnter Employee ID: ");
scanf("%d", &emp[counter].id);
printf("Enter Employee Age: ");
scanf("%d", &emp[counter].age);
printf("Enter Employee Salary: ");
scanf("%lf", &emp[counter].salary);
printf("n");
employeesNumber++;
}
else {
printf("ERROR!!! MAXIMUM NUMBER OF EMPLOYEES REACHEDnn");
}
printf("n");
break;
default:
printf("ERROR: Incorrect Option: Try Againnn");
}
} while (option != 0);
printf("Exiting Employee Data Program. Good Bye!!!");
return 0;
}