📄 新建 文本文档.txt
字号:
#include <iostream>
using namespace std;
void main()
{ int k;
int number;//须访问的磁道的总数
int i,j;
int dis;//磁头移动的距离
int initial;//当前磁道号
int swap;
cout<<"请输入当前磁道号:";
cin>>initial;
cout<<"请输入要访问的磁道总数:";
cin>>number;
int a[100];
for( i=0;i<number;i++)
{
cout<<"第"<<i+1<<"个磁道号为:";
cin>>a[i];
}
for( i=number-1;i>0;i--)//从小到大的排序算法(冒泡排序)
for( j=0;j<i;j++)
if(a[j]>a[j+1])
{
swap=a[j];
a[j]=a[j+1];
a[j+1]=swap;
}
cout<<"从小到大排序后的磁道号为:";
for(i=0;i<number;i++)
{
cout<<a[i]<<",";
}
cout<<endl;
i=0;
while (i<number)//找出一个比当前磁道号大的即将要访问的磁道号
{ if(a[i]<initial)
{i++;
continue;
}
break;
}
if(i==number)//如未找到,则从当前磁道向小数磁道号方向执行
{
float s=0;
i=0;
cout<<"被访问的下一个磁道号:\t"<<"移动距离是:"<<endl;
while(i<number)
{
dis=abs(initial-a[i]);
cout<<a[i]<<'\t'<<'\t'<<'\t'<<'\t'<<dis<<endl;
initial=a[i];
i++;
s=s+dis;
}
cout<<"平均寻道长度:"<<s/number<<endl;
}
else//如找到,就向大数磁道号方向执行
{
float s=0;
k=i;
cout<<"被访问的下一个磁道号:"<<'\t'<<"移动距离是:"<<endl;
while(i<number)
{dis=a[i]-initial;
cout<<a[i]<<'\t'<<'\t'<<'\t'<<'\t'<<dis<<endl;
initial=a[i];
i++;
s=s+dis;
}
i=0;
while(i<k){
dis=abs(a[i]-initial);
cout<<a[i]<<'\t'<<'\t'<<'\t'<<'\t'<<dis<<endl;
initial=a[i];
i++;
s=s+dis;
}
cout<<"平均寻道长度:"<<s/number<<endl;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -