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

看板Examination作者 (STADIUM ARCADIUM)時間12年前 (2013/06/11 15:56), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串2/2 (看更多)
前面恕刪,不好意思 在第二小題中,我認同你提出的(2) 如果分母為零,在執行過程中會遇到fatal error,程式將會停止執行 解決辦法為 將System.out.println( "Av = "+(s/c)); 改成System.out.println( "Av = "+ ( (c==0)?0:(s/c) ) ) 即可解決 歡迎討論:) : ------------------------------------------------------------------- : 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: 180.218.121.117

06/11 17:36, , 1F
推,這應該是正解
06/11 17:36, 1F

06/11 22:19, , 2F
恩恩~太感謝大大了~我以為這種三元運算只適用c/c++~看
06/11 22:19, 2F

06/11 22:19, , 3F
來我讀的還不夠阿~~~
06/11 22:19, 3F
文章代碼(AID): #1HjjWSDC (Examination)
文章代碼(AID): #1HjjWSDC (Examination)