内容发布更新时间 : 2024/11/18 10:54:27星期一 下面是文章的全部内容请认真阅读。
a[j] = temp; } }
printf(\ if (i % 10 == 9){ printf(\ } }
printf(\请输入当前磁道号:\\n\ scanf(\ if (a[0] >= now){
printf(\当前访问的磁道:%d\\n\ for (i = 0; i < n - 1; i++){
printf(\当前访问的磁道:\\t%d\\n\
}
sum = a[n - 1] - now;
printf(\移动的总磁道数:%d\\n\ }
else if (a[n - 1] <= now){
printf(\当前访问的磁道:%d\\n\ for ( j = n - 1; i>=0; j--){
printf(\当前访问的磁道:\\t%d\\n\
}
sum = now - a[0];
printf(\移动的总磁道数:%d\\n\ }
else{
int d;
while (a[k] < now){ k++; }
j = k - 1;
printf(\请输入当前磁头移动的方向(0向内,1向外):\\n\ scanf(\ if (d == 1){ int i = 0;
for (int t = k; t < n; t++){
printf(\当前访问的磁道:\\t%d\\n\ sum += a[t] - now; now = a[t]; }
for (int t = 0; t < k; t++){
printf(\当前访问的磁道:\\t%d\\n\ }
sum += a[n-1] - a[0]+a[j]-a[0]; }
else if (d == 0){
for (int t = j; t >= 0; t--){
printf(\当前访问的磁道:\\t%d\\n\ sum += now - a[t]; now = a[t]; }
for (int t = n-1; t >=k; t--){
printf(\当前访问的磁道:\\t%d\\n\ }
sum += a[n - 1] - a[0]+a[n-1]-a[k]; }
else{
printf(\输入错误,重新回到选择算法界面!\\n\ }
}
printf(\经过的总磁道数为:%d\\n\
printf(\移动的平均磁道数:%.2lf\\n\ printf(\请再次输入你想使用的方法:\\n\}
/* 主函数*/ int main() {
int n;//磁道数
int control=1;//控制处理的方式
printf(\请输入要处理的磁道数:\\n\ scanf(\ int c[1000];
printf(\随机生成磁道号:\\n\ srand((unsigned)time(NULL)); //srand((unsigned)time(NULL));
for (int i = 0; i < n; i++){ c[i] = (rand() % 100) + 1; printf(\ if (i % 10 ==9){ printf(\ } }
printf(\数据生成成功!\\n\ printf(\ printf(\算法选择\\n\
printf(\最短寻道时间算法\\n\ printf(\扫描算法\\n\ printf(\循环扫描算法\\n\ printf(\退出程序\\n\ printf(\
/*算法选择*/
printf(\请输入你想使用的方法:\\n\ while (control){
scanf(\ switch (control){ case 0: break;
case 2:
SSTF(c, n); break; case 3:
SCAN(c, n); break; case 4:
CSCAN(c, n); break; default:
printf(\选项错误!重新选择!\ break; } }
printf(\程序退出成功,谢谢使用!\ system(\ return 0; }
[实验结果]
[心得体会]
通过本次试验,我清楚的理解到了磁盘扫描算法;最短寻道算法、循环算法、扫描算法。在理论理解的基础上又加深了一个层次,但是在到吗过程中还是有很大的欠缺,我会在以后的学习过程中好好的弥
补代码里的错误,提高编写代码的能力。