我试图根据这些参数编写程序:
创建一个名为RandomArray的程序,它将生成一个名为numArray的数组10随机 整数大于1且小于或等于100.程序应要求用户输入 一个大于0且小于100的整数。然后程序应显示所有数字 数组大于用户输入的数字。
您将需要一个名为ranNumber的随机数生成器,并使用它来填充整数数组 调用numArray,其中10个数字大于0且小于或等于100.要求用户输入a 名为userNum的数字大于0且小于100.创建一个名为的静态void方法 displayGreaterThan,它使用增强的for循环来遍历数组,并使用if语句 将数组内容与用户输入的数字进行比较。该方法应显示数字 从数组中大于用户输入的数字。
问题在于,当我运行程序时,我的随机数生成器不会得到十个结果。输入的每个号码都不同,我不知道为什么。
这是我的代码:
public class RandomArray
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
SecureRandom ranNumber = new SecureRandom();
int NumArray[] = new int[10];
int userNum;
int choice;
int num = 0;
{
num = 1+ ranNumber.nextInt(100);
displayGreaterThan (num);
}
}//end of main
public static void displayGreaterThan(int num)
{
int userNum ;
int numArray[] = new int[10];
Scanner input = new Scanner(System.in);
System.out.println("Please enter a number 1 to 100");
userNum = input.nextInt();
while ( userNum < 1 || userNum > 100)
{
System.out.println("error please try again.");
System.out.println("Please enter a number 1 to 100");
userNum = input.nextInt();
}
for (int counter = 1; counter <= numArray.length; counter++)
{
SecureRandom ranNumber = new SecureRandom();
num = 1+ ranNumber.nextInt(100);
if (num > userNum)
{ numArray[1]++;
System.out.println( + userNum + " is your random number");
}
else
{
counter++;
}
}
}
}
我做错了什么,因为这不应该这么难。
答案 0 :(得分:0)
我建议稍微分解一下,以使每个程序更简单。你宣称扫描仪两次,一次是在主要的,这是不必要的。 displayGreaterThan
程序有很多工作,我认为这会导致一些问题。并不是说这是完美的,但是你可以将它与你所要做的事情进行比较来简化你想要做的事情。
public class RandomArray
{
public static void main(String[] args)
{
int[] intNumArray = new int[11];
int intUserNumber = 0;
// Get random numbers
intNumArray = GenerateRandomNumbers();
// Get user initial user input
intUserNumber = GetUserInput(intUserNumber);
// Validate and recursively call procedure if invalid
if(intUserNumber < 1 || intUserNumber > 100)
{
// Get user input again if invalid
intUserNumber = GetUserInput(intUserNumber);
}
// Display results
DisplayGreaterThan(intUserNumber, intNumArray);
// Print array for double checking
PrintArray(intNumArray);
}
public static int[] GenerateRandomNumbers()
{
SecureRandom ranNumber = new SecureRandom();
int[] intNumArray = new int[11];
for(int intCounter = 0; intCounter < 11; intCounter++)
{
intNumArray[intCounter] = ranNumber.nextInt(100);
}
return intNumArray;
}
public static int GetUserInput(int intUserNumber)
{
Scanner clsScanner = new Scanner(System.in);
System.out.println("Please enter a number between 1 and 100");
intUserNumber = clsScanner.nextInt();
return intUserNumber;
}
public static void DisplayGreaterThan(int intUserNumber, int[] intNumArray)
{
System.out.println("The array values greater than " + intUserNumber + ":");
for(int intCounter = 0; intCounter < 11; intCounter++)
{
if(intNumArray[intCounter] > intUserNumber)
{
System.out.println("#" + intCounter + " = " + intNumArray[intCounter]);
}
}
}
public static void PrintArray(int[] intNumArray)
{
System.out.println("The random array values:");
for(int intCounter = 0; intCounter < 11; intCounter++)
{
System.out.println("#" + intCounter + " = " + intNumArray[intCounter]);
}
}
}