剛看到這個題的時候以為10分鐘就能做出來,但是還是有坑的,不小心的話總是無法全對,還是做了好一會兒。
#include
#include
using namespace std;
int main()
{
int Max,Min,n,flag=0;
double Mid;
cin>>n;
int a[n];
for(int i=0; i
>a[i];
}
if(n%2)
Mid = a[n/2];
else
Mid = (a[n/2]+a[n/2-1])/2.0;
if(a[n-1] > a[0]){
Max = a[n-1];
Min = a[0];
}else{
Max = a[0];
Min = a[n-1];
}
if(int(Mid) == Mid)
cout<
<<" "<
有兩個需要注意的地方,第一個是分?jǐn)?shù)的輸出格式,用setw()臨時控制其后一個數(shù)據(jù)的輸出(只控制Mid),第二個是輸出中位數(shù)時,注意2.0這種數(shù)據(jù)的出現(xiàn),用int(Mid)判斷一下就好了。
?
用Python寫就舒服多了,關(guān)鍵是變量的類型轉(zhuǎn)換比較方便~
n = int(input())
data = [int(i) for i in input().split()]
Max = max(data)
Min = min(data)
half = len(data) // 2
Mid = (data[half] + data[~half])/2 #這里Mid是浮點數(shù)
if(int(Mid) == Mid):
Mid = int(Mid)
print("{} {} {}".format(Max,Mid,Min))
運行速度還是蠻快的,但是耗內(nèi)存比較多,幸好這道題數(shù)據(jù)量不大,比賽的時候需要謹(jǐn)慎使用~
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
