乙個乙個結果對比了,發現結果都對啊,但是沒有通過。。。
其實很簡單,就是在原來魔獸世界一的基礎上多加了乙個**的功能,然而自己還是搞了乙個小時,兩周前寫的程式都忘完了,發現自己當時寫的程式注釋不夠詳細,所以才會導致程式中的變數好多都忘了。吸取教訓,要注釋的詳細一點,你的遺忘速度真的很快!!!
原題位址
#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.學會了繪製一張網路拓撲圖。希望能夠更加努力,收穫成長。週數專業學習目標 專業學習時間 新增 量 部落格發表...