void SCAN(int array[],int m){
int temp;
int now;
int pos;
int i,j,sum=0;
float avg;
for(i=0;i<m;i++){
for(j=i+1;j<m;j++){ //对磁道号进行从小到大排列
if(array[i]>array[j]){ //两磁道号之间比较
temp=array[i];
array[i]=array[j];
array[j]=temp;
}
}
}
for( i=0;i<m;i++)//输出排序后的磁道号数组
printf("%d ",array[i]);
printf("\n 请输入当前的磁道号:");
scanf("%d",&now);
printf("\n SSTF 调度结果: ");
{
pos = 0;
for(i = 0; i < m; i++){ //找到 第一个 大于等于 当前磁道 的 在要操作的磁道序列中 的 磁道
if(now <= array[i]){
pos = i; //pos 记录下找到的磁道在 在要操作的磁道序列中 的 序数
break;
}
}
for(i = pos; i < m; i++) printf("%d ", array[i]); //从 当前磁道 往序数最大的磁道移动
for(i = pos - 1; i >= 0; i--) printf("%d ", array[i]); //翻转方向(向序数小的方向移动)向序数最小的磁道移动
sum = array[m - 1] - now + (pos ? array[m - 1] - array[0] : 0);/* ( array[m - 1] - now ) : 从最开始在的磁道向最大的磁道移动的距离
( pos ? array[m - 1] - array[0] + array[pos - 1] : 0 ) : 如果最开始在的磁道比要操作的序数最小的磁道还要小就不用翻转方向再移动了 */
}
avg=(float)sum/m;
printf("\n 移动的总道数: %d \n",sum);
printf(" 平均寻道长度: %f \n",avg);
}
void CSCAN(int array[],int m){
int temp;
int now;
int pos;
int i,j,sum=0;
float avg;
for(i=0;i<m;i++){
for(j=i+1;j<m;j++){ //对磁道号进行从小到大排列
if(array[i]>array[j]){ //两磁道号之间比较
temp=array[i];
array[i]=array[j];
array[j]=temp;
}
}
}
for( i=0;i<m;i++)//输出排序后的磁道号数组
printf("%d ",array[i]);
printf("\n 请输入当前的磁道号:");
scanf("%d",&now);
printf("\n SSTF 调度结果: ");
{
pos = 0;
for(i = 0; i < m; i++){ //找到 第一个 大于等于 当前磁道 的 在要操作的磁道序列中 的 磁道
if(now <= array[i]){
pos = i; //pos 记录下找到的磁道在 在要操作的磁道序列中 的 序数
break;
}
}
for(i = pos; i < m; i++) printf("%d ", array[i]); //从 当前磁道 往序数最大的磁道移动
//然后返回磁道另一端(序数最小的磁道) (并不需要什么操作
for(i = 0; i < pos; i++) printf("%d ", array[i]); //从磁道另一端(序数最小的磁道)沿相同方向(向序数大的方向移动)向不大于 最开始在的磁道 的磁道移动
sum = array[m - 1] - now + (pos ? array[m - 1] - array[0] + array[pos - 1] : 0); /* ( array[m - 1] - now ) : 从最开始在的磁道向最大的磁道移动的距离
( pos ? array[m - 1] - array[0] + array[pos - 1] : 0 ) : 如果最开始在的磁道比要操作的序数最小的磁道还要小就不用返回另一端了 */
}
avg=(float)sum/m;
printf("\n 移动的总道数: %d \n",sum);
printf(" 平均寻道长度: %f \n",avg);
}
实验六的SCAN和C-SCAN算法(xjb写的憋照抄啊=。=
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 成长记录-连载(三十六) ——我的第一篇五千字长文,说了什么,你一定想不到 并不是不想每天写公众号,而是之前思考怎...
- tabbar+navigation的架构用的地方很多了,虽然tabbar有自带的hideTabbarWhenPus...