#include<conio.h>
#include<stdio.h>
#include<string.h>

struct address
{
 char street[25];
 char town[25];
 long int pin;
 long int phone;
};

struct hotel
{
 char name[60];
 struct address adrs;
 int grade;
 int avgrc;
 int rooms;
};
 void abc(struct hotel h[20],int n);
 void xyz(struct hotel h[20],int n);

void main()
{
 struct hotel h[20];
 int n,i,g;
 clrscr();
 printf("ENTER THE NUMBER OF HOTELS:");
 scanf("%d",&n);
 for(i=0;i<n;i++)
 {
  printf("ENTER HOTEL NAME,ADDRESS(STREET,TOWN,PIN,PHONE),GRADE,AVERAGE ROOM-CHARGE,TOTAL ROOMS\n");
  scanf("%s %s %s %ld %ld %d %d %d",h[i].name,h[i].adrs.street,h[i].adrs.town,&h[i].adrs.pin,&h[i].adrs.phone,&h[i].grade,&h[i].avgrc,&h[i].rooms);
 }
  abc(h,n);
  xyz(h,n);
  getch();
}

void abc(struct hotel h[20],int n)
{
 struct  hotel c[20];
 int g,i,j,t,k=0,l;
 char p[60];
 printf("ENTER THE GRADE U WANT TO SEE:");
 scanf("%d",&g);
 for(i=0;i<n;i++)
   if(h[i].grade==g)
   {
      k++;
       c[i]= h[i];
   }
 for(i=0;i<k;i++)
   if(c[i].grade==g)
  {
   for(i=0;i<k-1;i++)
   for(j=0;j<k-i;j++)
   if(c[j].avgrc>c[j+1].avgrc)
    {
      t=c[j+1].avgrc;
      c[j+1].avgrc=c[j].avgrc;
      c[j].avgrc=t;
      strcpy(p,c[j+1].name);
      strcpy(c[j+1].name,c[j].name);
      strcpy(c[j].name,p);
      l=c[j+1].rooms;
      c[j+1].rooms=c[j].rooms;
      c[j].rooms=l;
     }
   }
 for(i=0;i<k;i++)
  printf("HOTEL NAME=%s,AVERAGE ROOM-CHARGE=%d,TOTAL ROOMS=%d\n",c[i].name,c[i].avgrc,c[i].rooms);
}

void xyz(struct hotel h[20],int n)
{
 int i,r;
 printf("ENTER THE AVERAGE ROOM CHARGE BELOW WHICH U WANT TO SEE:");
 scanf("%d",&r);
 for(i=0;i<n;i++)
  if(h[i].avgrc<=r)
  printf("HOTEL NAME=%s,AVERAGE ROOM-CHARGE=%d,TOTAL ROOMS=%d\n",h[i].name,h[i].avgrc,h[i].rooms);
}





