2019年11月22日 星期五

OnlineJudge線上評測系統-常見問題


之前介紹過OnlineJudge線上評測系統,

也列了一個程式範例,

一套新的系統對使用者來說肯定很陌生,

因此也產生了一些問題,

今天就針對這些問題來介紹:

OnlineJudge線上評測系統-常見問題


輸入/輸出範例相關




每個試題都有輸入範例與輸出範例,

而 OJ 是以比對方式來判別程式是否正確,

輸入/輸出範例中未出現的字(包含空格、逗號、換行)都會造成錯誤

上圖中的程式在輸出的時候多出了 “ a + b = “。


輸入/輸出範例相關



上圖中的程式多了輸入提示 '直徑?' ,

輸出也多了 ’面積為’ 、 '周長為' ,

故判定錯誤。


載入模組未加上 import


上圖中的程式使用了 math 模組,但沒有加上 import

資料型態


左圖中的程式假設輸入 a=1 , b=2 ,

雖然有作資料型態的轉換,

但因為輸出的浮點數 3.0 與題目的輸出範例不符,

故判定結果為錯誤。

演示範例:




input得到的資料,其型態為字串



input所得到的資料為字串,

必須先轉變資料型態後,

才能拿來作數值的運算。

以上圖中程式為範例,

分別輸入 1 與 2 ,

最終得到的結果為’ 12 ’ 的字串而非兩數字相加。



而此圖中程式並未作資料型態的轉換,

就直接作相減的運算,

故判定結果為錯誤。

split為字串分割的方法


上圖範例 b = a.split(‘,’),

可看到split回傳值為一個List(如黃底所示),

將原來的字串 a 分割為 ‘hello’ 與 ‘world’ 兩個字串。

程式演示:




上圖程式則是先將字串轉換為浮點數,

導致 c 與 b 已經不是字串,

再使用 split 是錯誤的。


初學者學習程式同時還要適應OnlineJudge線上評測系統,

難免會出現許多基本問題,

只要多練習即可。




沒有留言: