C 初學者,從網上摘了個程式有點看不懂,求大神解釋一下

時間 2021-10-14 23:03:19

1樓:

這應該是作業系統的先進先出的頁面轉換演算法。原理是如果記憶體中頁面佇列為空則把頁面放進出,直到記憶體頁面佇列滿(這裡的程式記憶體頁面最大數為3),如果記憶體中的頁面佇列滿了,則要判斷要調入的頁面是否已經在記憶體頁面中,不在的話就要進行頁面置換。

#include

#include

#include

using namespace std;

bool existornot(int num, queue myqueue) //判斷要調入的頁面是否已經在記憶體頁面中

return false;

}int main()

;for (int i=0; i<12; i++)

else

} int size=memqueue.size();

while (size>0) //這裡的迴圈是為了輸出當前記憶體中的頁面

cout<

}cout<<"使用fifo策略時,共發生缺頁中斷"<

return 0;

}page[ ]=;

執行過程應該是這樣的:

頁面4,3,2直接調入記憶體,

1不在記憶體,4出,1進,結果為3,2,1;第1次置換

4不在記憶體,3出,4進;結果為2,1,4;第2次置換

3不在記憶體,2出,3進;結果為1,4,3;第3次置換

5不在記憶體,1出,5進;結果為4,3,5;第4次置換

4在記憶體

3在記憶體,這時候i=8,故當i=8時的輸出應該是4,3,5

2不在記憶體,4出,2進;結果為3,5,2;第5次置換

1不在記憶體,3出,1進;結果為5,2,1;第6次置換

5在記憶體,

共進行了6次置換。

ps:樓主太摳了,也不獎賞一點。。。

這個c程式看的不懂,求大神給個註釋解釋,最好每一步都能有!謝謝謝謝!

2樓:物理公司的

#include

#include

using namespace std;

float p,q;

void m(int a,int b,int c,float d)else if(d==0)

else

cout<

return 0;}

c++打完一個**後給出這麼一個介面,求大神解釋一下什麼意思

3樓:匿名使用者

看看指標釋放或者野指標之類的,如果**簡單可以貼上來看看,要不就自己打斷點單步除錯找問題吧

c語言初學者的問題,c語言初學者的乙個問題

問題小一 上面那位回答很詳細了 問題小二 那是自己定義的,你可以改其他數字 問題小三 不設並不是任意長度,看你自己定義的型別 基本型別包括位元組型 char 整型 int 和浮點型 float double 定義基本型別變數時,可以使用符號屬性signed unsigned 對於char int 和...

繪畫初學者從什麼學起比較好,畫畫初學者該從何學起?

明媚女孩 石家莊藍色空間美術學校建議 初學先要學者去臨摹別人的一些作品,比如美國建築畫啊,是很好的臨摹範本,不過要會看,眼光要提高,知道哪張適合你畫,那張在效果上比較好,只是很重要的,美國建築畫比較難,掌握起來也是不很容易,如果你覺得吃力就去找國內的一些比較好的畫去臨摹,臨摹是要學習他人好的表現手法...

求教 初學者對於C 書籍的選擇

如果看英文版不吃力就看英文版吧,沒過四級感覺還是有些吃力的,不過有的書用詞很簡單,比如演算法導論,你可以先試試看英文版,不行再看中文版的嘛。不用單純就學c 一門語言吧,可以看看演算法的,也可以看看應用的,開拓視野啊。多謝謝小東西,可能實踐之後回來看理論就會理解更深了。上面這些書。其實我只看了 c p...