CSP試題201903-1小中大(C++實現)
阿新 • • 發佈:2020-09-07
1 #include <iostream>
2 #include <iomanip>
3 using namespace std;
4
5 int main()
6 {
7 int n,i,max=0,min=0,midf=0;
8 float mid=0;
9 cin >> n;
10 int arr[n];
11 for(i=0;i<n;i++)
12 {
13 cin >> arr[i];
14 }
15
16 if(arr[0] > arr[n-1 ])
17 {
18 max = arr[0];
19 min = arr[n-1];
20 }
21 else
22 {
23 max = arr[n-1];
24 min = arr[0];
25 }
26
27 if(n%2 == 0)
28 {
29 mid = (arr[(n/2)-1]+arr[n/2])/2.0;
30 midf = (int)(mid*10.0);
31 if(midf%10 == 0)
32 {
33 midf = midf/10 ;
34 cout << max << " " << midf << " " << min << endl;
35 }
36 else
37 {
38 mid = midf;
39 mid = mid/10.0;
40 cout << max << " " << setiosflags(ios::fixed)
41 << setprecision(1 ) << mid << " " << min << endl;
42 }
43 }
44 else
45 {
46 midf = arr[(n-1)/2];
47 cout << max << " " << midf << " " << min << endl;
48 }
49
50 return 0;
51 }
思路很簡單,但有一些要注意的點:運用iomanip庫中的setprecision控制浮點數的輸出位數,int型別和float型別做乘除運算,int會被隱式轉換。
通過測試