如何使用if语句和for循环(java)在数组中查找最小值,最大值和模式?

时间:2017-04-20 04:59:13

标签: java arrays max mode minimum

这里的第一个问题,所以请放轻松。目前正在学习java的乐趣,我希望我可以选择你的家伙'大脑要求这个。



        for (int i = 0; i < num; i++) {
            if (score[i] > max) {
                max = score[i];
            }
        }
        
        for (int i = 0; i < num; i++) {
            if (score[i] < min) {
                min = score[i];
            }
        }
&#13;
&#13;
&#13;

当我运行代码时,它给了我最大的数组,但是min的位并没有给出数组中输入集合中的miniumum。

我接下来的问题是模式,我甚至不知道从哪里开始,我真的不知道任何复杂的东西,所以简单化的东西对我有帮助。谢谢你们!

3 个答案:

答案 0 :(得分:0)

if(score[0]>score[1])
{
  max=score[0];
  min=score[1];
}
else{

  min=score[0];
  max=score[1];
}
for (int i = 2; i < num; i++) {
            if (score[i] > max) {
                max = score[i];
            }
        }

        for (int i = 2; i < num; i++) {
            if (score[i] < min) {
                min = score[i];
            }
        }

答案 1 :(得分:0)

如果你在for循环之外初始化min变量,那么最小循环似乎是正确的。此外,检查并查看您初始化的最小值是否低于您正在检查的所有元素的实际最小值。这会给你一个不正确的阅读。

对于模式部分,您需要找到最常出现的数字。想想你会怎么做。一种可能性是扫描阵列并为每个数字设置一个计数器,并在每次在阵列中找到该数字时递增其计数器。这可能不是最佳解决方案,因为您需要为阵列中的每个不同数字提供一个计数器,但这是一个简单的理解示例,并希望指向正确的方向。尝试一下,如果您需要更多帮助或想要更好的解决方案,我将进行编辑和更新。

答案 2 :(得分:0)

就像其他一些答案所表明的那样,我认为问题在于&#34; min&#34;的正确初始化。尝试使用数组的第一个值初始化。

// example data
int[] score = {3,1,5,7,2}; 

// initialize min with first score value
int min = score[0];

// find minimum (note that one could start with i = 1, assuming score.length is at least 2)
for(int i = 0; i < score.length; i++) {
   if(min > score[i])
      min = score[i];
}
System.out.println(min); // should print '1'

将代码放在&#34; findMin(int [] arr)&#34;等方法中时请记住确保处理null或长度为1的数组!

请提供更多有关您使用&#39;模式&#39;

的信息