You are on page 1of 2

visit-www.Codes2u.

com
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{int dq[30],i,j,k,l,m,hd,mv,cyl,tmv=0,temp;
clrscr();
printf("enter the total no of cyllinders:");
scanf("%d",&cyl);
printf("\nenter the no of reference cyllinders in disk queue:");
scanf("%d",&m);
printf("\nenter the disk queue:");
for(i=1;i<=m;i++)
scanf("%d",&dq[i]);
printf("\nenter the initial head value:");
scanf("%d",&hd);
dq[0]=hd;
dq[-1]=0;
for(i=-1;i<m;i++)
for(j=-1;j<m-i;j++)
if(dq[j]>dq[j+1])
{temp=dq[j+1];
dq[j+1]=dq[j];
dq[j]=temp;
}
for(i=-1;i<=m;i++)
if(dq[i]==hd)
{k=i;
break;
}
l=k;
while(k>-1)
{mv=abs(dq[k]-dq[k-1]);
printf("%d ",mv);
tmv+=mv;
k--;
}
tmv+=abs(dq[l+1]-dq[-1]);
l++;
while(l<m)
{mv=abs(dq[l]-dq[l+1]);
printf("%d ",mv);
tmv+=mv;
l++;
}

printf("\ntotal head movement:%d",tmv);


getch();
}

You might also like