[問題] 請問一些問題

作者: k7245313 (Leo)   2014-12-15 23:40:53
import java.util.*;
public class PM6_1 {
public static void main(String args[]){
int maxNum = 0,number = 0,num1,num2,num3,num4,name = 0;
int maxName=0;
Scanner keyin=new Scanner(System.in);
System.out.printf("請玩家輸入姓名並擲骰子=>");
keyin.nextLine();
number=game();
System.out.printf("合計:%d\n",number);
System.out.printf("請玩家輸入姓名並擲骰子=>");
keyin.nextLine();
number=game();
System.out.printf("合計:%d\n",number);
System.out.printf("請玩家輸入姓名並擲骰子=>");
keyin.nextLine();
number=game();
System.out.printf("合計:%d\n",number);
System.out.printf("請玩家輸入姓名並擲骰子=>");
keyin.nextLine();
number=game();
System.out.printf("合計:%d\n",number);
if (number>maxNum){
maxNum=number;
maxName=name;
}
maxNum=max(number,max(number,max(number,number)));
System.out.printf("\n恭喜!!%d 先生擲出%d贏得此局\n",maxName,ma
xN
}
static int game(){
Random random=new Random();
int k,sum=0,ran;
System.out.printf("\t您擲出=>");
for(k=1;k<=3;k++){
ran=1+random.nextInt(6);
System.out.printf("%d和",ran); //讓擲出的數目中間有間

sum=sum+ran;
}
System.out.printf("\n");
return sum;
}
static int max(int a,int b){
if (a>b)
return a;
else
return b;
}
}
http://i.imgur.com/0ggYnBB.jpg
我想寫出圖片那樣,不過最大數跑的出來,但玩家姓名一直是0
麻煩各位指點一下,謝謝!
gist: https://gist.github.com/anonymous/602acd7cfabd46f9c53b
作者: LPH66 (-6.2598534e+18f)   2014-12-15 23:49:00
注意 nextLine 回傳了什麼東西
作者: Killercat (殺人貓™)   2014-12-15 23:56:00
程式碼貼gist吧....
作者: k7245313 (Leo)   2014-12-16 00:05:00
Killercat:抱歉,gist網址已貼上
作者: k70430 (K7)   2014-12-16 07:50:00
而且你一個變數使用了3次,你這樣maxname只會是最後一個玩家的名字,而不是真的最大值的姓名啊。因為name會一直被蓋過去,你目前寫法,一個玩家就會更換一次name的值最大值也有一樣的狀況,你宣告了4個int,卻一直用同一個number來存放丟骰子的結果,仍然只取到最後一筆啊
作者: realmeat (真肉)   2014-12-16 10:27:00
XD 這程式的邏輯很有問題.. 再回去想想
作者: Killercat (殺人貓™)   2014-12-16 13:23:00
gist可以調整格式java而非txt 不用道歉 只是提醒一下以後跟人討論也方便許多喔

Links booklink

Contact Us: admin [ a t ] ucptt.com