【发布时间】:2017-04-08 23:09:09
【问题描述】:
首先,如果这个问题的标题有任何错误,我很抱歉。我只是不知道如何把它放在一个问题中。以下代码掷骰子一千次,并显示掷骰子上的数字的次数。我想打印最大数字的索引而不是元素。
import java.util.Random;
public class apples {
public static void main(String args[]){
Random rand = new Random();
int a[] = new int[7];
for(int i = 1; i<1001; i++){
++a[rand.nextInt(6) + 1];
}
System.out.println("Roll\tTimes");
for(int j=1; j<a.length; j++){
System.out.println(j + "\t\t" + a[j]);
}
int max = a[0];
for (int i : a) {
if (max < i) {
max = i;
}
}
System.out.println("The winning number is " + max);
}
}
编辑:
我想出了如何获取索引,但有更简单的方法吗?
import java.util.Random;
public class apples {
public static void main(String args[]){
Random rand = new Random();
int a[] = new int[7];
int winner = 0;
for(int i = 1; i<1001; i++){
++a[rand.nextInt(6) + 1];
}
System.out.println("Roll\tTimes");
for(int j=1; j<a.length; j++){
System.out.println(j + "\t\t" + a[j]);
}
int max = a[0];
for (int i : a) {
if (max < i) {
max = i;
}
}
for(int j=0; j<a.length; j++){
if(max==a[j]){
winner = j;
}
}
System.out.println("The winning number is " + winner);
}
}
【问题讨论】:
-
然后将 foreach 重写为正常的 for 循环。与其将给定 pos 处的数组值存储到最大值中,不如将索引存储在那里,并与当前最大值 val 所在的索引处的值进行比较,而不是与数字进行比较。
-
我用 if 语句打开了另一个循环来检查 max 的值是否等于数组元素,然后将索引分配给另一个变量然后打印它....但是还有其他方法吗可以吗?