[考題] 97年關務-程式語言概要

看板Examination (國家考試)作者 (媽媽咪阿)時間13年前 (2013/06/11 15:22), 編輯推噓1(102)
留言3則, 1人參與, 最新討論串1/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)個方法小弟還想不到只修改一條敘述就解決的方法... 或者小弟根本就想錯....題目要問的根本不是這兩種情況呢? 想請板上強者大大們指點指點~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.114.181.55

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

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

06/11 16:26, , 3F
底下有人回了XD
06/11 16:26, 3F
文章代碼(AID): #1Hjj0RRn (Examination)
討論串 (同標題文章)
文章代碼(AID): #1Hjj0RRn (Examination)