まず、この質問のタイトルに間違いがある場合は、すみません。私はちょうどそれを質問に入れる方法を知らない。次のコードは、サイコロを1000回転がし、サイコロの数値が何回転がされるかを表示します。私は要素ではなく、最大の数のインデックスを印刷したいと思います。最大要素を選択した後に配列要素のインデックスを印刷する
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);
}
}
EDIT:
私は、インデックスを取得する方法を考え出したが、それを行うための簡単な方法はありますか?
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);
}
}
通常のforループにforeachを書き換えます。与えられたposの配列の値をmaxに格納する代わりに、インデックスをそこに格納し、現在の最大valがあるインデックスの値と比較するのではなく、数値と比較する。 – SomeJavaGuy
if文で別のループを開いて、maxの値が配列要素と等しいかどうかを確認し、別の変数にインデックスを代入してからそれを印刷しました....しかし、それ以外の方法はありますか? –
[配列の最大値のインデックスを見つけて印刷するにはどうすればよいですか?](http://stackoverflow.com/questions/8991103/how-can-i-locate-and-print-the-index -of-a-max-value-in-an-array) –