我在排序随机数字数组时遇到问题。
我想做的是制作一个if语句,以确保arr[0]
始终大于arr[1]
。
为什么呢?好吧,我的程序生成0到99之间的两个随机数,它会做简单的数学问题,比如减法和除法。由于您无法正确划分55/99,因此第一个arr[0]
应始终大于arr[1]
。
我在这里,感谢您的帮助!
public static int[] randomNumbers(){
Random obj = new Random();
int arr[] = new int[2]; //init array to hold 2 numbers
arr[0] = obj.nextInt(99); //number 1 randomized 0 - 9 // sort array
arr[1] = obj.nextInt(99); //number 2 randomized 0 - 9
//do compare to make sure arr[0] is always greater than arr[1]
//but how???
return arr;
/*int rgen = obj.nextInt(10); //first number has to be larger than second 0 - 10
int rgen1 = obj.nextInt(9); //random 0 - 9
int randomNumber = rgen + rgen1; //stores the answer*/
}
答案 0 :(得分:4)
只需生成两个数字,然后在第二个更大时切换它们。
if (arr[1] > arr[0]) {
int temp = arr[0];
arr[0] = arr[1];
arr[1] = temp;
}
答案 1 :(得分:1)
您正在生成0到98之间的数字。如果要包含99,则应调用obj.nextInt(100)。
arr[0] = obj.nextInt(100);
if(arr[0]==0)
arr[1]=0;
else
arr[1] = obj.nextInt(arr[0]+1);
arr [0]将在[0,100 [
]中得到一个数字如果生成的数字为0,则arr [1]只能为0.
否则,arr [1]会在 [0,arr [0] +1 [(所以 [0,arr [0]] )中得到一个数字;
注意:将非正数传递给nextInt()会引发异常。