[考題] 97年關務程式設計概要

看板 Examination
作者 smalldulan (媽媽咪阿)
時間 2013-06-11 15:22:00
留言 3則留言 (1推 0噓 2→)

[考題] 國考歷屆考題與考題觀念討論(書裡看到的選這個)請附上想法、出處 這題的第二小題不是很確定要寫什麼,希望板上程式強者大大能夠提醒指點小弟~ 感激不盡~~ 二.(一)填入下列 Java 程式的空格(不可是常數),使該程式能夠印出陣列 dset 中所有值 在 0 至 100 的數的平均值。(請在試卷上作答) 堦 (二)指出此程式在何種狀況下會產生嚴重錯誤。只能修改一個敘述,且不能新增敘述 或刪除原有敘述,使程式能克服該項錯誤。 我直接把我第一題的答案填入程式中如下: ------------------------------------------------------------------- class javaTest{ public static void main(String args[]){ int dset[] = {90,30,-5,70,95,110,80}; int c = 0; int s = 0; for (int i = 0; i <dset.length ; i++){ if (dset[i] <= 100 && dset[i] >= 0){ c++; s+= dset[i]; } } System.out.println( "Av = "+(s/c)); } } ------------------------------------------------------------------- 第二題我想到的可能問題有兩個: (1)在dset中介於0-100之間的數造成s/c不能整除的情況下, 答案只會顯示整數的部分,所求的平均值不完全正確 (2)在dset中介於0-100之間的數是0個,造成s/c分母為0 就嚴重度來說我個人是覺得(2)比較嚴重, 但由於題目規定只能修改一條敘述,不能新增或刪除敘述 第(1)個問題小弟還有辦法解決 可是第(2)個方法小弟還想不到只修改一條敘述就解決的方法... 或者小弟根本就想錯....題目要問的根本不是這兩種情況呢? 想請板上強者大大們指點指點~ -- ◆ From: 120.114.181.55
※ 批踢踢實業坊(ptt.cc)
※ 文章網址: https://www.ptt.cc/bbs/Examination/M.1370935323.A.6F1.html

carterdunk:System.out.println( "Av = "+(s/((c==0)?1:c))); 06/11 16:17

carterdunk:看了上一題的題型想到的方法 應該是要處理你的(2)沒錯 06/11 16:18

carterdunk:底下有人回了XD 06/11 16:26

您可能感興趣