C语言实现SSTF(最短寻道时间优先)

qq_41093250 2017-12-21 10:22:54
#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;
}
请教一下,按照我这个程序设计为什么只能找到第一个满足要求的数字,应该怎么修改??我这个程序编写的大体思路有错吗?
...全文
480 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
paschen 2017-12-21
  • 打赏
  • 举报
回复
建议单步跟踪程序运行,观察程序执行流程及变量变化情况,分析原因

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧