C语言转换#include<iostream> #include<stack> #include<algorithm> using namespace std; #define NUM 8 void Write(int *a,int &sum,int &head) { cout<<"走道顺序:"<<head<<" "; for(int i=0;i<NUM;i++) cout<<a[i]<<" "; cout<<"\n平均寻道长度:"<<sum/NUM<<"\n"; } void SCAN(int head,int *a,int &sum)//电梯算法 { stack<int> s; sort(a,&a[NUM]); for(int i=0;i<NUM-1;i++) if(a[i]<=head) s.push(a[i]); for(int i=0;s.size()!=0;i++){ a[i]=s.top(); s.pop(); } sum=abs(head-a[0]); for(int i=1;i<NUM;i++) sum+=abs(a[i]-a[i-1]); } int main() { int a[NUM]={98,183,37,122,14,124,65,67},head=53; int sum=0; SCAN(head,a,sum); Write(a,sum,head); system("pause"); }
时间: 2024-04-28 17:22:12 浏览: 51
使用include <iostream>时一定要加using namespace std
这是一个使用 C++ 实现的 SCAN 硬盘调度算法的代码,主要实现了对给定磁盘访问序列进行排序后,按照电梯运行方式移动磁头,计算总的寻道长度并输出走道顺序和平均寻道长度。其中,头指针 head 初始位置为 53,磁盘访问序列为 {98,183,37,122,14,124,65,67},磁盘访问序列长度为 NUM=8。
阅读全文