![]() |
#2
JabinZ2020-05-24 16:05
|
这是代码:

#include <stdio.h>
#include <stdlib.h>
#define Maxsize 100
typedef struct //磁头信息
{
int cur; //当前磁头所处柱面号,初始值为53
int direction; //磁头移动方向 1代表由外往内,-1代表由内往外
}citou;
typedef struct //用来储存柱面信息
{
int a[Maxsize];
int len;
}list;
list c1; //储存大于磁头初始柱面的请求访问柱面,顺序由小到大
list c2; //储存小于磁头初始柱面的请求访问柱面,顺序由大到小
void creat()
{
int x;
int i,j=0;
printf("\n请输入访问柱面序列(以-1结束):\n");
scanf("%d",&x);
while(x!=-1)
{
if(x>=53)
{
c1.a[i++]=x;
c1.len=i;
}
else
{
c2.a[j++]=x;
c2.len=j;
}
scanf("%d",&x);
}
int temp;
//将c1中的柱面序列由小到大排序
for(i=0;i<c1.len-1;i++)
for(j=0;j<c1.len-1-i;j++)
if(c1.a[j]>c1.a[j+1])
{
temp=c1.a[j];
c1.a[j]=c1.a[j+1];
c1.a[j+1]=temp;
}
//将c2中的柱面序列由大到小排序
for(i=0;i<c2.len-1;i++)
for(j=0;j<c2.len-1-i;j++)
if(c2.a[j]<c2.a[j+1])
{
temp=c2.a[j];
c2.a[j]=c2.a[j+1];
c2.a[j+1]=temp;
}
}
void print(list *a)
{
int i;
printf("\n页面序列:");
for(i=0;i<a->len-1;i++)
printf("%d ",a->a[i]);
}
int main()
{
creat();
print(&c1);
print(&c2);
}
//测试数据: 98 183 37 122 14 124 65 67 -1
运行结果:
只有本站会员才能查看附件,请 登录