看板java
标 题Re: [问题] 该怎麽改阿
发信站KKCITY (Sat Jun 23 02:17:15 2007)
转信站ptt!ctu-reader!ctu-gate!news.nctu!news.ntu!news.au!zoonews.ee.ntu!news
※ 引述《[email protected] (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 ◤
--