作者leo2 (STADIUM ARCADIUM)
站内Examination
标题Re: [考题] 97年关务-程式语言概要
时间Tue Jun 11 15:56:10 2013
前面恕删,不好意思
在第二小题中,我认同你提出的(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
1F:推 ARCHERDEVIL:推,这应该是正解 06/11 17:36
2F:推 smalldulan:恩恩~太感谢大大了~我以为这种三元运算只适用c/c++~看 06/11 22:19
3F:→ smalldulan:来我读的还不够阿~~~ 06/11 22:19