我在将数组分配给float等值时遇到问题。这是我的代码
System.out.print("Please enter the number of iteration: ");
Scanner scn = new Scanner(System.in);
int inumber = scn.nextInt(); // i get the iteration number
Random rnd = new Random();
float x = -10 + rnd.nextFloat() * 20; // i created random number between 10 and -10
System.out.println("My x = " +x);
float[] xarray = new float[4]; // created my test array
Random arrayrnd = new Random();
for (int i=0;i<inumber;i++) { // created a for loop with that number
for (int j = 0; j<xarray.length;j++) {
xarray[j] = arrayrnd.nextFloat(); // also created random for array and assigned them
}
Arrays.sort(xarray); // i sorted the array
xarray[0] = x; // i tried to assign the smallest number to x but didn't work
System.out.println("t="+i+" My new x = " +x);
这也是我的输出:
Please enter the number of iteration: 2
My x = -6.2841988
t=0 My new x = -6.2841988
t=1 My new x = -6.2841988
即使我尝试为x赋新值,我也不明白为什么我的x没变。我希望我的x在循环的每一圈都改变,并得到最少的数组。但是似乎x永远都不想动。如果我的代码很复杂或有任何错误,我们深感抱歉。编码愉快!
答案 0 :(得分:5)
如果您要分配给x ,则应该执行以下操作:
x = xarray[0];
代替:
xarray[0] = x;