[问题] 请问一些问题

楼主: 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