设某盘有CN道,同时到达QC个磁盘请求,其请求的道号存qc[CN]数组中,其中qc[0]放有当前道号。程序模拟磁盘移臂道数。其中数组
cy[CN]用于记录访问状态(0—无访问请求,1——有访问请求)。p放当前道号,d放当前最短路径,q放最短路径道号,t累计移臂道数,请完成这一算法。
/*文件名:sstf.c*/
#include "sstf.h"
int cy[CN];
int qc[CN]={53,98,183,37,122,14,124,65,67}
main()
{
int i,j,p,q,d,t;
for(i=0; i<QC; i++)
cy[qc[i]]+=1;
printf("Move serial:");
q=qc[0];
printf("%d->",q);
for((t=0,i=0);i<QC-1;i++)
{
d=CN;
p=q;
cy[q]-=1;
for(j=0;j<QC; j++)
if(cy[qc[j]]&&d>abs(p-qc[j]))
{
d=abs(p-qc[j]);
q= ;
}
printf("%d->",q);
t= ;
}
printf("\n Move numberes:%d\n",t);
}