###### 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]