#include <iostream>
using namespace std;
int main()
{
int num;
int count;
int Page_Num;
int empt=0;
int tianman = 1;
int Page_fault_num = 0;
float Page_fault_rate = 0;
int state = 0;
int biaoji = 0;
int M[100] = { 0 };
cout << "请输入信息块数目:";
cin >> num;
cout << "输入总共的页面数:";
cin >> count;
cout << "请输入页面号:";
for (int i = 0; i < count; i++)
{
state = 0;
cin >> Page_Num;
cout << Page_Num;
if (i == 0) {
M[i] = Page_Num;
cout << "*";
Page_fault_num++;
}
else {
for (int j = tianman; j < num; j++)
{
if (M[j] == 0) {
empt = j;
break;
}
}
if (tianman > num)
{
for (int j = 0; j < num; j++)
{
if (M[j] == Page_Num)
{
state++;
}
}
}
else
{
for (int j = 0; j < tianman; j++)
{
if (M[j] == Page_Num)
{
state++;
}
}
}
if (state == 0)
{
if (tianman < num)
{
M[empt] = Page_Num;
cout << "*";
tianman++;
Page_fault_num++;
}
else {
M[biaoji] = Page_Num;
biaoji++;
cout << "*";
Page_fault_num++;
}
}
else {
cout << "-";
}
}
if (biaoji == num)
{
biaoji = 0;
}
for (int q = 0; q < num; q++)
{
cout << M[q];
}
cout << endl;
}
Page_fault_rate = Page_fault_num * 1.0 / count;
cout << "缺页率为:" << Page_fault_rate;
}