📄 电梯调度.cpp
字号:
#include<iostream.h>
#include<math.h>
void bubblesort(int table[],int n);
void swap(int table[],int a,int b);
void main()
{
int a=12;
int m,p,q; //m为当前磁道号,p为与m最接近的且比m大的一个数,q存放最小数table[0]
int table[12]={8,17,27,129,110,186,78,147,41,10,64,12};//定义一个数组,存放给定的请求队列
bubblesort(table,a); //调用冒泡排序函数,对所给数组进行排序
q=table[0];
cout<<"请输入当前磁道号m"<<endl;
cin>>m;
for(int i=0;i<a;i++) //找p
{
if(fabs(table[0]-m)>fabs(table[i+1]-m)&&table[i+1]-m>=0) //判断大小
{
table[0]=table[i+1];
p=table[0];
}
}
cout<<"与m最接近的且比m大的磁道为"<<p<<endl;
int z; //p的下标
for( i=0;i<a;i++)
{
if(table[i]==p)
z=i; //找到p的下标
}
cout<<"p的下标"<<z<<endl; //输出p的下标在z
for(i=z;i<a;i++)
cout<<table[i]<<endl; //输出比m大的序列
for(i=z-1;i>0;i--)
cout<<table[i]<<endl; //输出比m小的序列
cout<<q<<endl; //输出最小数
}
void bubblesort(int table[],int n) //冒泡排序
{
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-1;j++)
if(table[j]>table[j+1])
swap(table,j,j+1);
}
}
void swap(int table[],int i,int j) //交换两数
{
int temp=table[i];
table[i]=table[j];
table[j]=temp;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -