Java用随机数填充随机数组
我有一个家庭作业,用户必须输入数组的大小,然后数组必须填充随机值。我在用非垃圾值填充数组时遇到问题。我确信我的代码也存在其他问题,但这是我目前试图解决的最大问题。任何帮助都将不胜感激Java用随机数填充随机数组,java,Java,我有一个家庭作业,用户必须输入数组的大小,然后数组必须填充随机值。我在用非垃圾值填充数组时遇到问题。我确信我的代码也存在其他问题,但这是我目前试图解决的最大问题。任何帮助都将不胜感激 import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import java.io.*; import java.util.*; public class rotateArray1
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.io.*;
import java.util.*;
public class rotateArray1
{
public static int randomFill()
{
Random rand = new Random();
int randomInt = rand.nextInt();
return randomInt;
}
void leftRotate(int arr[], int d, int n)
{
int i;
for(i=0; i < d; i++)
leftRotateByOne(arr, n);
}
void leftRotateByOne(int arr[], int n)
{
int i,temp;
temp = arr[0];
for(i=0; i < n -1; i++)
arr[i] = arr[i+1];
arr[i] = temp;
}
void printArray(int arr[],int size)
{
int i;
for (i = 0; i<size;i++)
System.out.print(arr[i]+ "");
}
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println("Enter size of array");
int x= input.nextInt();
int[] arr = new int[x];
for(int i = 0; i<x; i++){
arr[i] = randomFill();
}
rotateArray rotate = new rotateArray();
rotate.leftRotate(arr, 2, x);
rotate.printArray(arr, x);
System.exit(0);
}
}
import java.awt.*;
导入java.awt.event.*;
导入javax.swing.*;
导入javax.swing.event.*;
导入java.io.*;
导入java.util.*;
公开课轮换1
{
公共静态int-randomFill()
{
Random rand=新的Random();
int randomInt=rand.nextInt();
返回随机数;
}
void leftRotate(int arr[],int d,int n)
{
int i;
对于(i=0;i 对于(i=0;i只需将对数组的引用传递给randomFill,并一次性完成。这有助于main()中的代码更容易阅读,并使用Random的一个实例,正如前面所指出的,它可能更符合您的需要
import java.util.Random;
public class JavaTest {
public static void main(String... args) {
int[] array = new int[10];
randomFill(array);
for(int i = 0; i < array.length ; i++){
System.out.println("array["+i+"] = "+array[i]);
}
}
static void randomFill(int[] array)
{
Random rand = new Random();
for(int i = 0; i < array.length ; i++){
array[i] = rand.nextInt();
}
}
}
您希望发生什么,以及会发生什么?什么是“垃圾值”?您不需要只包装一行:randomValue=rand.nextInt();
。不要为每个随机值声明一个新的Random
,因为这会减少明显的随机性。Random
的生存期应该从第一个随机值之前到最后一个随机值之后。不要在printArray
循环外部声明循环变量。不要对参数使用字符串串联t到PrintStream#print
调用只获取String.valueOf
。始终在if
和循环体周围使用大括号。修复缩进。不要将实现放在变量或方法名中。你所说的“垃圾值”是什么意思?具体一点-你期望得到什么值,以及你得到了什么?
array[0] = 431970257
array[1] = 9846759
array[2] = 1919609165
array[3] = -544686432
array[4] = 655372436
array[5] = -331654257
array[6] = -1187729012
array[7] = 1378209257
array[8] = -1225327561
array[9] = 1887304192