为什么我的程序将数组中的数字打印为零,但仍打印出数组中的最大值?
why does my program print the numbers in my array as zeros but still print the largest value out of the array?
import java.util.*;
import java.util.Arrays;
import java.util.Random;
class EZD_maxTester
{
static int variables[] = new int[10];
static int maximum()
{
Random rand = new Random();
int max = variables[0];
for (int i = 0; i < 10; i++)
{
variables[i] = rand.nextInt(100)+1;
}
for (int a = 0; a < variables.length; a++)
{
if (variables[a] > max)
{
max = variables[a];
}
}
return max;
}
public static void main(String Args[])
{
int option;
do{
Scanner kbReader = new Scanner(System.in);
System.out.println("Integers that will be compared: " + Arrays.toString(variables));
System.out.println("");
System.out.println("The maximum value is " + maximum());
System.out.println("");
System.out.println("Type 1 to run again. Type 0 to end the program.");
option = kbReader.nextInt();
while(option !=1 && option !=0)
{
if (option != 1 && option != 0)
{
System.out.println("Please enter 1 to run again or 0 to end the program.");
option = kbReader.nextInt();
}
}
System.out.println("");
kbReader.close();
}while(option==1);
}
}
(我对编码非常陌生,所以我的代码可能没有想象中那么整洁
!这也是我第一次在这里提问)
我们正在学习 class 中的数组,我必须编写一个程序来查找 运行 随机生成的数字数组中的最大整数,但是当我 运行该程序数组只是打印为零,但它仍然给我最大值(??)。当我使用 static int variables[] = new Random().ints(10, 0, 100).toArray();
时它会正确打印,但是当我再次 运行 程序时它只会打印同一组 运行dom 数字。我如何让它打印出数组而不用零掩盖我的数字?
当你打电话时
System.out.println(Arrays.toString(variables));
你还没有填写数组
数组在maximum
方法中填写
一个简单的改变是打印数组 after filling the array in
您在 maximum()
之前调用了 System.out.println(Arrays.toString(variables));
- 第二个实际上设置了数组中的值,因此当您打印时它们都为零。将打印移动到调用 maximum();
之后
// System.out.println("Integers that will be compared: " + Arrays.toString(variables));
System.out.println("The maximum value is " + maximum());
System.out.println("Integers that were compared: " + Arrays.toString(variables));
您需要在这条语句之前调用maximum()
方法:
System.out.println("Integers that will be compared: " + Arrays.toString(variables));
import java.util.*;
import java.util.Arrays;
import java.util.Random;
class EZD_maxTester
{
static int variables[] = new int[10];
static int maximum()
{
Random rand = new Random();
int max = variables[0];
for (int i = 0; i < 10; i++)
{
variables[i] = rand.nextInt(100)+1;
}
for (int a = 0; a < variables.length; a++)
{
if (variables[a] > max)
{
max = variables[a];
}
}
return max;
}
public static void main(String Args[])
{
int option;
do{
Scanner kbReader = new Scanner(System.in);
System.out.println("Integers that will be compared: " + Arrays.toString(variables));
System.out.println("");
System.out.println("The maximum value is " + maximum());
System.out.println("");
System.out.println("Type 1 to run again. Type 0 to end the program.");
option = kbReader.nextInt();
while(option !=1 && option !=0)
{
if (option != 1 && option != 0)
{
System.out.println("Please enter 1 to run again or 0 to end the program.");
option = kbReader.nextInt();
}
}
System.out.println("");
kbReader.close();
}while(option==1);
}
}
(我对编码非常陌生,所以我的代码可能没有想象中那么整洁 !这也是我第一次在这里提问)
我们正在学习 class 中的数组,我必须编写一个程序来查找 运行 随机生成的数字数组中的最大整数,但是当我 运行该程序数组只是打印为零,但它仍然给我最大值(??)。当我使用 static int variables[] = new Random().ints(10, 0, 100).toArray();
时它会正确打印,但是当我再次 运行 程序时它只会打印同一组 运行dom 数字。我如何让它打印出数组而不用零掩盖我的数字?
当你打电话时
System.out.println(Arrays.toString(variables));
你还没有填写数组
数组在maximum
方法中填写
一个简单的改变是打印数组 after filling the array in
您在 maximum()
之前调用了 System.out.println(Arrays.toString(variables));
- 第二个实际上设置了数组中的值,因此当您打印时它们都为零。将打印移动到调用 maximum();
// System.out.println("Integers that will be compared: " + Arrays.toString(variables));
System.out.println("The maximum value is " + maximum());
System.out.println("Integers that were compared: " + Arrays.toString(variables));
您需要在这条语句之前调用maximum()
方法:
System.out.println("Integers that will be compared: " + Arrays.toString(variables));