※ 引述《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 ◤
--
討論串 (同標題文章)
完整討論串 (本文為第 5 之 6 篇):