北大MOOC第三週 005 魔獸世界之一 備戰

2021-09-12 11:27:47 字數 2259 閱讀 1031

題目描述 

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

typedef mapstrintmap;

static strintmap strength;

//mapstrength;

//14:30-16:30

class warcraft

bool born(int time)

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

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

else

}cout << setw(3) << setfill('0') << time << " " << name_ << " headquarter stops ****** warriors" << endl;

hascout = true;

return false;

}};int main()

; 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;

}

乙個小小的程式,寫了兩個小時,5個bug。真的是要多寫才會少bug,即使程式再簡單,以目前自己的水平,仍然是寫不好。一開始也不用想著刷leetcode了,先把mooc上的課後習題做做吧!

bug:

1、if else 那裡邏輯一開始有問題

2、在if條件判斷裡使用了i++,這是致命的錯誤,不應該再犯

3、迴圈賦值語句a[i]寫成了a[0],逗呢,這麼多低階錯誤,反應的還是**寫的少

4、這裡為啥不行????ith=(ith++)%5 這樣的話,i輸出的值是 1 2 3 4 5 ,為什麼不是0 1 2 3 4 呢?沒搞懂

//這裡為什麼輸出的是 1 2 3 4 5 ????

int i = 0;

while (1)

5、忘寫了生命值減少的語句

待解決的問題:

程式中本來map想放在類內,但是類外無法初始化,導致編譯不通過,還未解決。

20190317補充:這個題還真的不簡單。。。

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

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

集訓第三週

又要感嘆時間過得真快了,8月13號,距離第一場網路賽還有26天。暑假三周集訓結束,個人賽也結束了,這一周還是做了一些個人賽,然後組好了隊伍。去年一隊有2個人算是 實力超群 比其餘人都高乙個檔次。而今年大家的水平都差不多,沒有像去年他們那麼突出,實力自然有不小的下降。相比去年的隊伍,今年隊的特點是大家...

第三週作業

實驗作業 1.輸入課本各個例題,除錯執行程式,並分析程式,將每乙個程式改寫2到3個版本,自己分析程式結果,然後再除錯執行,核對分析結果的對錯。2.編寫程式輸入乙個三角形的三條邊,計算其面積和周長 3.編寫程式計算並輸出課本本章習題3表示式的值並分析結果。4.編寫乙個程式,輸入乙個一元二次方程的三個係...