北大MOOC第五周003 魔獸世界之二 裝備

2021-09-14 05:34:25 字數 1787 閱讀 1705

乙個乙個結果對比了,發現結果都對啊,但是沒有通過。。。 

其實很簡單,就是在原來魔獸世界一的基礎上多加了乙個**的功能,然而自己還是搞了乙個小時,兩周前寫的程式都忘完了,發現自己當時寫的程式注釋不夠詳細,所以才會導致程式中的變數好多都忘了。吸取教訓,要注釋的詳細一點,你的遺忘速度真的很快!!!

原題位址

#include #include#include#include#include#includeusing namespace std;

typedef mapstrintmap;

//每個戰士的生命值

static strintmap strength;

//**名

static vectorweapon;

//mapstrength;

//14:30-16:30

//21:25

class warcraft

bool born(int time)

//bug2 不能在這裡用i++,因為這裡+過後就會影響後面的i

else if (strength[nameseq_[ith]] > lifenum_)

else

;int n, m;

cin >> n;

for (int ii = 0; ii < n; ii++)

warcraft wred("red", redname, m);

warcraft wblue("blue", bluename, m);

int time = 0;

//bug 7 這個是在上面while退出時,這一時刻輸出了headquarter stops ****** warriors,但是time++沒有執行,所以需要在while之外加上這句

//bug 8 如果兩者是同時退出的話,上面的&&只要第乙個wred不滿足後,就不會再執行後面的wblue了,所以此時不能time++

//一定要確定誰先執行完,如果使用下面這種同時判斷wred和wblue,則不能確定是誰先執行完了

//while (wred.born(time) && wblue.born(time))

//while (wred.born(time))

while (wblue.born(time))

/下面這種情況會遇到的問題是:

//當輸入為

//5000

//200 400 6 70 20 時,

//wred和wblue同時到達了最終要輸出stops ****** warriors。但是程式在判斷了wred.born(time)為false後就不會執行後面的了。

//此時後面的語句不應該time++。 這樣就和bug 7那裡衝突了,不知道什麼時候該time++,因為不知道兩個誰先結束,所以最後的解決辦法是上面的while (wred.born(time))

//while (wred.born(time) && wblue.born(time))

//bug 7 這個是在上面while退出時,這一時刻輸出了headquarter stops ****** warriors,但是time++沒有執行,所以需要在while之外加上這句

//time++;

//while (wblue.born(time))

////while (wred.born(time))

////return 0;

} //n = 1, m = 20;

//for (int i = 0; i < 5; i++)

// return 0;

}

mooc第五章測驗錯題

2下列程式段輸出結果為 int x 1,y 012 printf d y x a.20 b.12c.10 d.24 3下面程式段的輸出結果是?int k while k 0 k k 1 printf d k a.無論k的初值如何,最終都會減到0的。b.因為沒有給k賦初值,因此程式不能通過編譯 c.1...

第五周周總結

時間進度表 日期開始時間 結束時間 中斷時間 淨時活動 備註3月15日 7 10 9 10 120打程式 規範 進行初步構思 3月16日 7 10 9 10 120打程式 實現減法無負數 3月17日 8 00 10 00 120打程式 實現減法無負數 3月18日 4 10 5 50 5 00 5 1...

第五周周記

第五周周記 本週完成了 1.html的網頁設計作業,學習了標籤 用 製作網頁 製作表單站點等。2.學習了資料結構的順序表和鏈式表的動態儲存和應用,以及如何寫 3.學習了ps 選單的部分功能。4.學會了繪製一張網路拓撲圖。希望能夠更加努力,收穫成長。週數專業學習目標 專業學習時間 新增 量 部落格發表...