[英]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总是会击败它。 如此有效,您在任何给定时间只需要在脑子里保留一个数字即可。 那应该足以让您入门!
而不是给您确切的解决方案,这里是完成它的想法。
这里的技巧是创建另一个变量,让我们将其称为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.