C语言实现SSTF(最短寻道时间优先)
#include<stdio.h>
#include<math.h>
void fun(int a[],int b)
{
int i=0,j,n,k,sum=0,z=0;
double m=0.0;
int c[20];
for(n=0;n<9;n++)
{
for(j=i+1;j<9;j++)
{
if(abs(a[i]-b)>abs(a[j]-b))
i=j;
}
c[z++]=a[i];
for(;i<9;i++)
{
a[i]=a[i+1];
}
a[9]--;
b=c[z];
i=0;
}
for(k=0;k<9;k++)
printf("%d\n",c[k]);
}
int main()
{
int j;
int a[]={55,58,39,18,90,160,150,38,184};
printf("请输入从几号磁道开始");
scanf("%d",&j);
fun(a,j);
return 0;
}
请教一下,按照我这个程序设计为什么只能找到第一个满足要求的数字,应该怎么修改??我这个程序编写的大体思路有错吗?