###### tags:無懈可擊的吉他社 無懈可擊的吉他社 === G3 / S2A / 21林恩珮 24席‧督菲蘭 32蔡孟潔 問題描述 --- 嘟嘟、珮珮、孟孟三人,依歌唱音準、吉他技巧、學習能力三項分數,找出三數和中最高值為社長,次高值為副社長。 輸入格式 --- (預設值) 嘟嘟 9 8 7 珮珮 7 6 5 孟孟 4 7 9 輸出格式 --- 社長為嘟嘟 能力值為24 副社長為孟孟 能力值為20 範例 --- https://replit.com/@1100519/gt#main.cpp 輸入範例 1 (其中一人之和最大)|輸出範例 1 (其中一人之和最大) --- | --- int du[] = {10, 10, 10}; int pei[] = {5, 9, 8};|社長為嘟嘟 能力值為30。 int meng[] = {6, 7, 8}; 輸入範例 2(三人之和相等)|輸出範例 2(三人之和相等) ---- | ---- int du[] = {8, 10, 5}; int pei[] = {6, 9, 8};|嘟嘟、珮珮和孟孟的能力值相等,無法比較。 int meng[] = {7, 7, 9}; 輸入範例 3(任一兩人之和相等)|輸出範例 3(任一兩人之和相等) ---- | ---- int du[] = {8, 10, 5}; int pei[] = {6, 9, 6};|珮珮和孟孟的能力值相等,無法選出。 int meng[] = {7, 8, 6}; 程式內容 --- ``` #include <iostream> using namespace std; int main() { // 嘟嘟、珮珮和孟孟的能力值,分別是唱歌音準、吉他技巧及學習能力。 int du[] = {0, 0, 0}; int pei[] = {0, 1, 0}; int meng[] = {0, 0, 0}; int z=0; // 計算每個人的總分 int duScore = du[0] + du[1] + du[2]; int peiScore = pei[0] + pei[1] + pei[2]; int mengScore = meng[0] + meng[1] + meng[2]; // 比較分數找出最高和次高的人作為社長和副社長(president、vicepresident) string p, vp; if ((duScore == peiScore && duScore > mengScore)||(duScore == mengScore && duScore > peiScore)||(peiScore == mengScore && peiScore > duScore)) { cout << "有兩人同高分無法選出" << endl; return 0; // 結束程式 } // 如果嘟嘟的值大於珮珮也大於孟孟 else if (duScore > peiScore && duScore > mengScore) { p = "嘟嘟"; // 社長就是嘟嘟 cout << "社長為" << p << " 能力值為" << duScore << endl; // 輸出嘟嘟為社長及其能力值 if (peiScore > mengScore) // (找副社長)如果珮珮的值大於孟孟 { vp = "珮珮"; // 副社長就是珮珮 cout << "副社長為" << vp <<" 能力值為" << peiScore << endl; // 輸出珮珮為副社長及其能力值 } else if (mengScore > peiScore) // (找副社長)如果孟孟的值大於珮珮 { vp = "孟孟"; // 副社長就是孟孟 cout << "副社長為" << vp <<" 能力值為" << mengScore << endl; // 輸出孟孟為副社長及其能力值 } else // (找副社長)如果珮珮的值等於孟孟 { cout << "珮珮和孟孟的能力值相等,無法選出副社長。" << endl; } return 0; // 結束程式 } // 如果珮珮的值大於嘟嘟也大於孟孟 else if (peiScore > duScore && peiScore > mengScore) { p = "珮珮"; //社長就是珮珮 cout << "社長為" << p <<" 能力值為" << peiScore << endl; // 輸出珮珮為社長及其能力值 if (duScore > mengScore) // (找副社長)如果嘟嘟的值大於孟孟 { vp = "嘟嘟"; // 副社長就是嘟嘟 cout << "副社長為" << vp <<" 能力值為" << duScore << endl; // 輸出嘟嘟為副社長及其能力值 } else if (mengScore > duScore) // (找副社長)如果孟孟的值大於嘟嘟 { vp = "孟孟"; // 副社長就是孟孟 cout << "副社長為" << vp <<" 能力值為" << mengScore << endl; // 輸出孟孟為副社長及其能力值 } else // (找副社長)如果嘟嘟的值等於孟孟 { cout << "嘟嘟和孟孟的能力值相等,無法選出副社長。" << endl; } return 0; // 結束程式 } // 如果孟孟的值大於嘟嘟也大於珮珮 else if (mengScore > duScore && mengScore > peiScore) { p = "孟孟"; // 社長就是孟孟 cout << "社長為" << p <<" 能力值為" << mengScore << endl; // 輸出孟孟為社長及其能力值 if (duScore > peiScore) // (找副社長)如果嘟嘟的值大於珮珮 { vp = "嘟嘟"; // 副社長就是嘟嘟 cout << "副社長為" << vp <<" 能力值為" << duScore << endl; // 輸出嘟嘟為副社長及其能力值 } else if (peiScore > mengScore)// (找副社長)如果珮珮的值大於孟孟 { vp = "珮珮"; // 副社長就是珮珮 cout << "副社長為" << vp <<" 能力值為" << peiScore << endl; // 輸出珮珮為副社長及其能力值 } else // (找副社長)如果嘟嘟的值等於孟孟 { cout << "嘟嘟和珮珮的能力值相等,無法選出副社長。" << endl; } return 0; // 結束程式 } else if (duScore == z && peiScore == z && mengScore == z) { cout <<"三人能力值為零,準備廢社。"; return 0; } else { if (duScore == peiScore && peiScore == mengScore) cout << "嘟嘟、珮珮和孟孟的能力值相等,無法比較。" << endl; return 0; // 結束程式 } } ``` 執行結果 === 工作分配與心得 --- **林恩珮_設計題目、撰寫HackMD** 在完成這份作業的過程,我了解到團隊合作的重要性,從起初的設計題目、撰寫程式到最後的程式輸出,我們遇到了不少阻礙,像是題目的設計是否結合到我們生活當中、遇到迴圈的問題該如何變換思路及陣列的探討等等,這些難題皆在我們組員們齊心協力下,一ㄧ化解成功。經過這次的報告,也讓我了解到自己的能力,啊......我未來不適合往資工的方向努力,所以謝謝老師給了我探索程式語言的機會! > [name=Enpeiii] **席‧督菲蘭_撰寫程式、註解程式、撰寫HackMD** 我對程式設計本來就蠻有興趣,所以在這次的作業中,是由我來撰寫程式!我覺得程式設本身就是一個有趣又極巨挑戰性的東西,需要很強的邏輯能力,雖然我程式寫得不會到太差(ㄏㄏ),而我們挑的題目也沒有很難,但其實中途也遇到了不少困難,不管是程式有錯誤還是遇到結果跑不出來的問題,除錯真的需要花費許多時間耐心及精力,但透過我們組員一起互相幫助、找錯,終於找出錯誤的地方,順利解決了!!不枉費我們八個小時的努力⋯( ; ; ) > [name=Flora] **蔡孟潔_設計題目、撰寫HackMD** 從設計題目與程式的編寫過程,都讓我們絞盡腦汁,為了貼近生活我們選擇組員所在的吉他社為出發點,我們運用了第一單元找出最大數、運算總和還有第二單元陣列做出了三種不同結果,還學習了Hack MD 這個程式的操作,撰寫程式過程中還發現同樣的輸出能用不同指令去執行,非常有趣看到自己寫得程式碼成功也很感動,使我收穫滿滿,讓我對C++語言有更深入的印象與認知。 > [name=Diananana]