以文本方式查看主题 - 课外天地 李树青 (http://www.njcie.com/bbs/index.asp) -- 清心茶舍 (http://www.njcie.com/bbs/list.asp?boardid=21) ---- 李老师,看一下上机编的程序,为什么调换顺序,结果就不一样 (http://www.njcie.com/bbs/dispbbs.asp?boardid=21&id=348) |
-- 作者:eva -- 发布时间:2007/4/3 18:46:18 -- 李老师,看一下上机编的程序,为什么调换顺序,结果就不一样 李老师: 这是add函数的代码: public void add(int a,int b,int c) 最后输出结果是 02:09:43PM,这个答案不正确。 但是我把顺序调换一下: public void add(int a,int b,int c) 输出结果是: 02:08:43PM,这个答案是正确的。 这是为什么,只是把代码的顺序换了一下。 [此贴子已经被admin于2010-12-13 19:52:23编辑过]
|
-- 作者:admin -- 发布时间:2007/4/4 7:54:31 -- 回复 在你的第一种代码中,你是先改变second变量的值,然后在据此改变minute,而minute需要second原先的值才能得到正确结果 second=(second+c)%60; [此贴子已经被作者于2010-12-13 19:52:42编辑过]
|
-- 作者:eva -- 发布时间:2007/4/4 20:32:13 -- 老师:我感觉在第一种代码应该没错阿。 算法是累加:Time t1=new Time(13,2,3); t.add(200,300,400); 我先用1.(400+3)/60=6分, (400+3)%60=43秒; 2.(300+2+6)/60=5小时, (300+2+6)%60=8分; 3.(200+13+5)%24=2; 所以是02:08:43 所以这个代码 public void add(int a,int b,int c) 算出来应该和我前面推算的结果一样啊,但是为什么不一样呢? 还有你上面说的我不太明白。 [此贴子已经被admin于2010-12-13 19:53:00编辑过]
|
-- 作者:eva -- 发布时间:2007/4/4 20:36:29 -- 哦,老师我明白了,我把代码改称这样: public void add(int a,int b,int c) 这样结果就对了。 老师,这个代码正确吗?
[此贴子已经被admin于2010-12-13 19:53:14编辑过]
|
-- 作者:admin -- 发布时间:2007/4/4 23:11:06 -- 回复 建议试验验证 |