0

更新:我知道 BASIC java,嗯……基本的。我真的不明白任何答案,因为我们的课程还很早。我知道这应该是一次学习经历,但是给我答案对我有帮助,因为我能够得出大多数事情的含义和学习到的东西,因为我以前不知道“最大”或任何一个。

向我提出的问题:

编写一个程序来创建一个整数值数组。使用 for 循环打印数组中的值。使用第二个 for 循环遍历数组并找到数组中的最大整数。

我的代码:

public class P3D
    {
    public static void main( String[] args )
        {
        int[] myInt = new int[10];

        myInt[0] = 34;
        myInt[1] = -3;
        myInt[2] = 12;
        myInt[3] = 90;
        myInt[4] = 3;
        myInt[5] = 4;
        myInt[6] = 56;
        myInt[7] = 92;
        myInt[8] = 0;
        myInt[9] = -45;

        for( int x = 0; x < 10; x++ )
            {
            System.out.println( myInt[x] );
            }
        }
    }    

我的下一个 for 循环将获得最大值是什么?我已经广泛搜索了我的教科书和互联网..但似乎找不到解决方案。

这只是我的 AP 计算机科学课上的一两个星期。其他同学在课程上落后于我,而老师通常不认识自己。

4

5 回答 5

6

这是一个现实生活中的类比。十个人会从你身边走过,每个人都带着一个标有一个整数的标志。您事先不知道这些整数将是什么,但是在最后一个人经过之后,您需要能够说出哪个整数最大。有什么简单的方法可以做到这一点?

提示:假设第一个人是 50,第二个人是 45。你不会费心去记住 45,因为 50 无论如何都会打败它。如此有效,您只需要在任何给定时间记住一个数字。这应该足以让你开始!

于 2013-09-23T22:42:20.980 回答
1

这里没有给你确切的解决方案,而是完成它的想法。

  1. 保留一个保持最大值的变量。在数组中
  2. 遍历数组并在需要更新时更新最大值。
  3. 瞧,在循环结束时,您有数组中的最大元素
于 2013-09-23T22:43:20.523 回答
0

这里的技巧是创建另一个变量,让我们调用它max的类型int,它将用于存储我们找到的最大值。然后你需要做的for就是像你的第一个循环一样创建另一个循环并添加一些逻辑。这是它的样子:

int max = myInt[0]//Assume that the max is the first value

for(int x=1;x<10;x++){//We can skip element 0 because we assumed it to be the max
    if(max<myInt[x]) max=myInt[x];//If the current element is bigger than the assumed max, we assume that element is the max
}
System.out.println("The max is: " + max);//After you finish the loop the value of max must be the biggest integer!
于 2013-09-23T22:42:10.650 回答
0

如果您从逻辑上考虑它,您的逻辑应该是这样的

您知道您正在逐个检查数组的每个值。所以你需要一些方法来记住当前的最大数字是多少。

如果您当前的最大数字小于您的 for 循环的值,那么您知道您的当前值大于当前的最大值,因此您将其替换。

int curMax = Integer.MIN_VALUE; //Integer.MIN_VALUE 获取整数可能的最低值,因此,数组中的所有内容都必须大于或等于该值。

使用 for 循环遍历数组,如果 myInt[x] > curMax 的值,则将 curMax 设置为等于 myInt[x]。

数组完成后,curMax = 数组中最高 int 的值。

我尽量不给你代码,因为你不会学到很多东西,但我希望我能充分回答你的问题,让你自己完成。:)

于 2013-09-23T22:44:06.237 回答
0

您可以通过使用 java API 来帮助使用非常简单的代码来做到这一点:

Arrays.sort(myInt); // sort from lowest to highest
int largest = myInt[myInt.length - 1]; // get the last one
于 2013-09-23T22:49:46.897 回答