Re: [問題] 該怎麼改阿

看板java作者時間18年前 (2007/06/23 02:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/6 (看更多)
※ 引述《annn17.bbs@ptt.cc (annn)》之銘言: > 以下是我的程式黨 > 應該直接貼入JBuilder or 類似的程式就可以run > 空很大的地方是我的問題處 > 就是我這樣算出來的答案阿 > 會是每一行的的第一個數字*0.3+第二個數字*0.3+第三個數字*0.4 > 可是他會第一個數字乘完0.3先無條件捨去ㄝ > 第二和第三個數字也一樣 > 請問我要怎麼改才能讓每個數字先不要無條件捨去 > 全部乘完再加總完再來四捨五入阿? > 請問可以在這邊問嗎 還是我該去哪邊問呢? > public class ex{ > public static void main(String arg[]) { > int len=7, dat[][]=new int[len][3], avg[]=new int[len]; > for (int i=0; i<len; i++) { > for (int j=0; j<3; j++) > avg[i]+=(dat[i][j]=(int)(10+Math.random()*(95-10))); avg[i]=dat[i][0]*3/10+dat[i][1]*3/10+dat[i][2]*4/10; ==>改成 avg[i]=(int)Math.round(dat[i][0]*0.3+dat[i][1]*0.3+dat[i][2]*0.4); 就可以取得四捨五入的值了 > } > int idx[]=sort(avg); > for (int i=0; i<len; i++) { > System.out.print("\n"+(1+idx[i])+": "); > for (int j=0; j<3; j++) > System.out.print("\t"+dat[idx[i]][j]); > System.out.print("\tavg= "+avg[idx[i]]+""); > } System.out.print("\n"); > for (int i=0; i<len; i++) { > System.out.print("\n"+(1+i)+": "); > for (int j=0; j<3; j++) > System.out.print("\t"+dat[i][j]); > System.out.print("\tavg= "+avg[i]); > } > } //========// > public static int[] sort(int d[]) { > int n[]=new int[d.length]; > for (int i=0; i<d.length; i++) n[i]=i; > for (int i=0; i<d.length; i++) > for (int j=0; j<d.length-1; j++) > if (d[n[j]]>d[n[j+1]]) > { int tmp=n[j]; n[j]=n[j+1]; n[j+1]=tmp; } > return n; > } //========// > } /**** end_of_class ****/ -- ┌─────KKCITY─────┐  線上音樂新震撼   bbs.kkcity.com.tw ^_^ / 隨選隨播免等待 KKBOX ^_^ / └──From:220.138.49.70 ──┘   http://www.kkbox.com.tw   --
文章代碼(AID): #16V1Ma00 (java)
文章代碼(AID): #16V1Ma00 (java)