內容 :
最近,
籌錢買了一片 Gran Turismo 5 回家做賽車夢,
又另外買了 G27 方向盤,
但在賽車場上的表現始終不如人意。
"車,不是這麼開的。"
說完爸爸接過了方向盤,
將記錄一次又一次的刷新。
給你每一圈的時間紀錄,
請算出 Best Lap 與平均時間。
我一定要成為車神!
輸入說明 :
第一行有一個數字 N (0 < N ≤ 10)
代表接下來有 N 組測試資料
每組測試資料第一行有一個數字 M (0 < M ≤ 100)
接著有 M 行資料
每行兩個數字 A, B (0 ≤ A, B ≤ 60)
代表該圈所花費時間為 A 分 B 秒
輸出說明 :
Track X:
Best Lap: X minute(s) X second(s).
Average: X minute(s) X second(s).
Average 為整數,小數部份無條件捨去
詳請參考範例測資
範例輸入 :
3
4
1 54
2 02
1 58
1 50
3
1 23
1 42
1 37
5
3 00
2 56
3 04
2 50
3 01
範例輸出 :
Track 1:
Best Lap: 1 minute(s) 50 second(s).
Average: 1 minute(s) 56 second(s).
Track 2:
Best Lap: 1 minute(s) 23 second(s).
Average: 1 minute(s) 34 second(s).
Track 3:
Best Lap: 2 minute(s) 50 second(s).
Average: 2 minute(s) 58 second(s).
Dim Min
回覆刪除Dim Average
Dim Total
Private Sub Form_Load()
Me.Hide
Open App.Path & "\in.txt" For Input As #1
Open App.Path & "\out.txt" For Output As #2
Input #1, N
For j = 1 To N
Input #1, M
Min = 0
Total = 0
For i = 1 To M
Input #1, mm, s
s = s + mm * 60
If Min > s Or Min = 0 Then Min = s
Total = Total + s
Next i
Average = Total \ M
Print #2, "Track" & j & ":"
Print #2, "Best Lap: " & Min \ 60 & " minute(s) " & Min Mod 60 & " second(s)."
Print #2, "Average: " & Average \ 60 & " minute(s) " & Average Mod 60 & " second(s)."
Print #2,
Next j
Close #2
Close #1
End
End Sub
Dim X, Y, Bst, Avg
回覆刪除Private Sub Form_Load()
Me.Hide
Open App.Path & "\in.txt" For Input As #1
Open App.Path & "\out.txt" For Output As #2
Input #1, T
For Ti = 1 To T
Bst = 10000
Avg = 0
Input #1, t2
For i = 1 To t2
Input #1, X, Y
Call A1(X, Y)
Avg = Avg + Y
If Y < Bst Then Bst = Y
Next
Avg = Avg / t2
Print #2, "Track " & Ti & ":"
Call A2(X, Bst)
Print #2, "Best Lap: " & X & " minute(s) " & Bst & " second(s)."
Call A2(X, Avg)
Print #2, "Average: " & X & " minute(s) " & Avg & " second(s)."
Next
Close
Close
End
End Sub
Sub A1(a, b)
b = b + (a * 60)
End Sub
Sub A2(a, b)
a = b \ 60
b = b Mod 60
End Sub
佑好,
回覆刪除1程式ok。
arro好,
1程式ok。
2你設定初始的最快的秒數是10000,剛好數字的限制最長是61分,也就是3660秒,可以達成。但是,這樣子的設法,還是容易出錯的。保險的做法是用第一筆資料來當最初的最快秒數。(這也符合現實,當只有一次資料時,那次就是最好的。)