L1 056 猜數字 20 分 (詳解)

2021-09-24 10:54:37 字數 870 閱讀 8489

一群人坐在一起,每人猜乙個 100 以內的數,誰的數字最接近大家平均數的一半就贏。本題就要求你找出其中的贏家。

輸入格式:

輸入在第一行給出乙個正整數n(≤10

​4​​ )。隨後 n 行,每行給出乙個玩家的名字(由不超過8個英文本母組成的字串)和其猜的正整數(≤ 100)。

輸入樣例:

7

bob 35

amy 28

james 98

alice 11

jack 45

smith 33

chris 62

輸出樣例:

22 amy
這題不難,就是對於我做的這種解法來說,就是有點坑,先說說思路。

1.先算出大家平均數的一半,

2.然後將大家猜的數與這個數相減的絕對值進行比較,標記差最小的那個人是第幾號

3.最後將這個數轉化為整型輸出,再輸出差最小那個人的姓名

再說下我遇到的坑點,剛開始陣列只開了100,會出現乙個段錯誤,將陣列開大到1000,還是如此,最後10000,就通過了。

#includeusing namespace std;

int main()

int winner_num = 0;//標記贏家為第幾個

float figure = sum/n/2.0;//figure為 平均數一半

int d_value = abs(figure - num[0]);

for (int i = 1; iabs(figure - num[i]))

}cout<<(int)figure<<" "

}

L1 056 猜數字 20 分

一群人坐在一起,每人猜乙個 100 以內的數,誰的數字最接近大家平均數的一半就贏。本題就要求你找出其中的贏家。輸入格式 輸入在第一行給出乙個正整數n 10 4 隨後 n 行,每行給出乙個玩家的名字 由不超過8個英文本母組成的字串 和其猜的正整數 100 輸出格式 在一行中順序輸出 大家平均數的一半 ...

L1 056 猜數字 20分

l1 056 猜數字 20分 一群人坐在一起,每人猜乙個 100 以內的數,誰的數字最接近大家平均數的一半就贏。本題就要求你找出其中的贏家。輸入在第一行給出乙個正整數n 10 4 隨後 n 行,每行給出乙個玩家的名字 由不超過8個英文本母組成的字串 和其猜的正整數 100 在一行中順序輸出 大家平均...

pta天梯賽 L1 056 猜數字

任務描述 一群人坐在一起,每人猜乙個 100 以內的數,誰的數字最接近大家平均數的一半就贏。本題就要求你找出其中的贏家。輸入格式 輸入在第一行給出乙個正整數n 10的4次方 隨後 n 行,每行給出乙個玩家的名字 由不超過8個英文本母組成的字串 和其猜的正整數 100 輸出格式 在一行中順序輸出 大家...