繁体   English   中英

用于最大整数的横向数组

[英]Transverse Array for Maximum Integer

更新:我知道BASIC Java,基本...基本。 我真的不了解任何答案,因为我们还处于起步阶段。 我知道这应该是一种学习经验,但是给我答案对我很有帮助,因为我能够得出大多数事情的含义和学习的知识,因为我以前不知道“ max”或任何一个。

向我提出的问题是:

编写一个创建整数值数组的程序。 使用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计算机科学课的一两个星期。 其他同学的课程落后于我,而老师通常不认识自己。

这是一个真实的类比。 十个人将要经过您,每个人身上都带有一个带有整数的符号。 您不知道这些整数将会是什么,但是在最后一个人走过去之后,您需要能够说出哪个整数最大。 有什么简单的方法可以做到这一点?

提示:假设第一个人走过50,然后第二个人走过45。您不会费心记住45,因为50总是会击败它。 如此有效,您在任何给定时间只需要在脑子里保留一个数字即可。 那应该足以让您入门!

而不是给您确切的解决方案,这里是完成它的想法。

  1. 保留一个变量以保持最大值。 在数组中
  2. 遍历数组并在需要更新时更新最大值。
  3. 在循环结束时,您可以从数组中获取最大元素

这里的技巧是创建另一个变量,让我们将其称为int类型的max ,它将用于存储我们发现的最大值。 然后,您需要做的就是像创建第一个循环一样创建另一个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!

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

您知道您正在逐一遍历数组的每个值。 因此,您需要某种方式来记住当前的最大数量是多少。

如果您当前的最大数量小于for循环所处的值,则您知道当前值大于当前的最大数量,因此将其替换。

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

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

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

我尝试不给您代码,因为您不会学到很多东西,但是我希望我能完全回答您的问题,以便您自己完成。 :)

您可以使用Java API通过非常简单的代码来完成此任务:

Arrays.sort(myInt); // sort from lowest to highest
int largest = myInt[myInt.length - 1]; // get the last one

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM