LRU页面置换算法

#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
    int n,m,k;
    int FW[40],i,j,q,MYL[40]={0},table[7][40];
    char flag,f[40],h;
    while(k)
  {
        cout << "请输入页面个数(最多40个):" << endl;
          cin >> n;
        cout << "请输入物理块个数(最多7个):" << endl;
          cin >> m;
        cout << "请输入页面访问序列" << endl;
        for(i = 0; i < n; i++)
          cin >> FW[i];
       cout << endl;
       for(i = 0; i < n; i++)//查页表,看是否缺页
     {
        q = 0;
        while((FW[i] != MYL[q]) && (q != m))
            q++;
        if(q == m)
            flag = '*';//缺页,则致flag为'*'
        else
            flag = ' ';//不缺页,则致flag为' '
        for(j = q; j > 0; j--)
            MYL[j] = MYL[j-1];//互换
        MYL[0] = FW[i];//将访问的序号放在最上面
        for(j = 0; j < m; j++)
            table[j][i] = MYL[j];//放入正确位置
        f[i] = flag;
     }
      cout << "输出结果如下:" << endl;
      for(i = 0; i < m; i++)
     {
        for(j = 0; j < n; j++)

            printf("%3d",table[i][j]);
            cout << endl;
     }
        for(i = 0; i < n; i++)
            printf("%3c",f[i]);
        cout << endl;
        cout << "你还想继续吗?是,请按Y或y,如果不是请按任意键!" << endl;
        cin >> h;
        if(h == 'Y' || h == 'y')
             k = 1;
        else
            break;
             //k = 0;
  }
        return 0;
}

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值