Practical 8 - NEW

 #include <stdio.h>

#include <string.h>


typedef struct Employee

{

 char Employee_name[20];

 int emp_no;

 float emp_salary;

} Employee;


void binarysearch(Employee s[], int num, int n)

{

 int count = 0;

 int first = 0;

 int last = n - 1;

 int flag = 0, mid;

 while (first <= last)

 {

  mid = (first + last) / 2;

  count++;

  if (num == s[mid].emp_no)

  {

   flag = 1;

   break;

  }

  else if (num > s[mid].emp_no)

   first = mid + 1;

  else

   last = mid - 1;

 }


 if (flag == 1)

 {

  printf("\nRecord found");

  printf("\nName\tEmployee no.\tSalary\n");

  printf("-------------------------------");

  printf("\n%s\t %d\t\t%0.2f\n", s[mid].Employee_name, s[mid].emp_no, s[mid].emp_salary);

  printf("\nTotal comparisons happened = %d\n", count);

 }

 else

  printf("\nRecord not found");

 // return flag;

}


int main()

{

 int n;

 printf("Enter no. of Employees: ");

 scanf("%d", &n);

 Employee s[n];


 for (int i = 0; i < n; i++)

 {

  printf("\nEnter Name, Employee no., Salary of Employee %d\n", i + 1);

  scanf("%s %d %f", s[i].Employee_name, &s[i].emp_no, &s[i].emp_salary);

 }


 int num;

 char ch;

 do

 {

  printf("\nEnter the emp_no to be searched: ");

  scanf("%d", &num);


  binarysearch(s, num, n);

  // if (binarysearch(s, num, n) == 1)

  // {

  // printf("\nRecord found");

  // printf("\nName\tEmployee no.\tSalary\n");

  // printf("-------------------------------");

  // printf("\n%s\t %d\t\t%0.2f\n", s[mid].Employee_name, s[mid].emp_no, s[mid].emp_salary);

  // printf("\nTotal comparisons happened = %d\n", count);

  // }

  // else

  // printf("\nRecord not found");


  printf("\nDo you want to search again?(y/n): ");

  scanf(" %c", &ch);


 } while (ch == 'y');


}

Comments

Popular posts from this blog

DAA P4 bfs, dfs

DAA P8 graph coloring

Practical 8 by Karan