山东科技大学学生课程设计
程序源代码
#include
void sort(int n,int a[]) {
int i,j,k;
for(i=0; i for(j=i; j k=a[i]; a[i]=a[j]; a[j]=k; } } printf(\排序后的磁道为:\ for(i=0; i printf(\ printf(\} void main() { printf(\最短寻道时间优先SSTF****\\n\ int i,j,k; int d=0,len=0; int now;//磁道号 int a[M];//存储磁道 int n; int in,out; printf(\请输入磁道数目:\ scanf(\ - 43 - 山东科技大学学生课程设计 printf(\请输入磁道:\ for(i=0; i printf(\请输入当前的磁道号:\ scanf(\ if(now for(i=0; i printf(\ } d=a[n-1]-now; len=d/n; printf(\平均寻道时间:%d\ } else if(now>a[n-1]) { for(i=n; i>0; i--) { printf(\ } d=now-a[0]; len=d/n; printf(\平均寻道时间:%d\ } else if(now==a[0]) { for(i=1; i printf(\ } d=a[n-1]-a[0]; len=d/n; - 44 - 山东科技大学学生课程设计 printf(\平均寻道时间:%d\ } else if(now==a[n-1]) { for(i=n-1; i>0; i--) { printf(\ } d=a[n-1]-a[0]; len=d/n; printf(\平均寻道时间:%d\ } else if(now>a[0]&&now int i; for(i=0; i if(a[i]>=now) { k=i; break; } } out=k; in=k-1; while(in>=0&&out<=n) { if(now-a[in]>a[out]-now) { d=a[out]-now; len=len+d; now=a[out]; - 45 - 山东科技大学学生课程设计 printf(\ out++; } else if(now-a[in]<=a[out]-now) { d=now-a[in]; len=len+d; now=a[in]; printf(\ in--; } } if(in<0) { for(j=out; j d=a[j]-now; len=len+d; now=a[j]; printf(\ } } if(out==n) { for(j=in; j>=0; j--) { d=a[j]-now; len=len+d; - 46 - 山东科技大学学生课程设计 now=a[j]; printf(\ } } printf(\平均寻道时间:%d\ } } - 47 -