This is some code i have been working on it is a menu with


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;

}

Solution Preview :

Prepared by a verified Expert
Business Management: This is some code i have been working on it is a menu with
Reference No:- TGS02933884

Now Priced at $10 (50% Discount)

Recommended (92%)

Rated (4.4/5)