java中如何求5个整数的中值

java中如何求5个整数的中值,java,median,Java,Median,所以我是编程新手,我的老师想让我们找到使用if语句的媒介(我问过他,但他并没有真正帮助我们),我们还没有学会扫描器、循环、数组等等。。所以我只知道bufferedReader、import.java.io&基本知识。我已经写出了if语句,但我仍然不知道如何让它输出中值。数字是1-5,所以我知道中位数是3。。下面是关于if语句的内容 if (num1<num2) System.out.println(num1 + "is less than" + n

所以我是编程新手,我的老师想让我们找到使用if语句的媒介(我问过他,但他并没有真正帮助我们),我们还没有学会扫描器、循环、数组等等。。所以我只知道bufferedReader、import.java.io&基本知识。我已经写出了if语句,但我仍然不知道如何让它输出中值。数字是1-5,所以我知道中位数是3。。下面是关于if语句的内容

        if (num1<num2) 
            System.out.println(num1 + "is less than" + num2);
        if (num1<num3)
            System.out.println(num1 + "is less than" + num3);
        if (num1<num4)
            System.out.println(num1 + "is less than" + num4);
        if (num1<num5)
            System.out.println(num1 + "is less than" + num5);
        if (num2>num1)
            System.out.println(num2 + "is greater than" + num1);    
        if (num2<num3)
            System.out.println(num2 + "is less than" + num3);
        if (num2<num4)
            System.out.println(num2 + "is less than" + num4);
        if (num1<num5)
            System.out.println(num1 + "is less than" + num5);
        if (num3>num1)
            System.out.println(num3 + "is greater than" + num1);
        if (num3>num2)
            System.out.println(num3 + "is greater than" + num2);
        if (num3<num4)
            System.out.println(num3 + "is less than" + num4);
        if (num3<num5)
            System.out.println(num3 + "is less than" + num5);
        if (num4>num1)
            System.out.println(num4 + "is greater than" + num1);
        if (num4>num2)
            System.out.println(num4 + "is greater than" + num2);
        if (num4>num3)
            System.out.println(num4 + "is greater than" + num3);
        if (num4<num5)
            System.out.println(num4 + "is less than" + num5);
        if (num5>num1)
            System.out.println(num5 + "is greater than" + num1);
        if (num5>num2)
            System.out.println(num5 + "is greater than" + num1);
        if (num5>num3)
            System.out.println(num5 + "is greater than" + num3);
        if (num5>num4)
            System.out.println(num5 + "is greater than" + num4);
if(num1num4)
系统输出打印项次(num5+“大于”+num4);

我不想给你答案;但这里有一些提示

if
语句可以在括号内包含多个条件,例如:

if(a>b && b < 10){...}
最后,您可以有一个
else
条件,当不满足该条件时将执行该条件

if(a>b){
   ...
} else {
   ...
}
当然,这些都可以组合在一起,使用多个条件嵌套ifs,并将ifs嵌套到else块中


正如我所说,我不想给你的问题的答案,因为我不相信这是学习如何做到这一点的最有效的方法;但希望这对你的知识和理解有一定的洞察力和意义。

如果你有555个数字怎么办?你能把所有可能的组合再写一遍吗?这实际上需要几天的时间

考虑使用一些数据结构,例如使用数组存储数字:

int[] array = new int[] {1, 2, 3, 4, 5};

中位数是中位数,3。

int[] array2 = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9};
这里的中位数是5

要找到中间值(假设数字总是按顺序排列),可以执行以下操作:

  • 找出数组的大小(有多少个元素)
  • 如果大小为奇数,则中间值为中间的元素
  • 如果大小为偶数,则中间值是两个中间元素之和除以2
  • 使用数组的示例:

     int[] array = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
     int size = array.length;
        if (size % 2 == 1) { // odd
            System.out.println("Median: : " + array[size / 2]);
        } else { // even
            int sum = array[size / 2 - 1] + array[size / 2];
            System.out.println("Median: : " + (float) sum / 2);
        }
    

    然而,我有一种感觉,即使这段代码非常简单,您仍然无法理解它。我强烈建议您阅读Java中的数组和集合,这只是为了节省一些时间。

    您刚刚编写了比较所有值的if语句(以及打印输出语句)。您应该考虑中值的含义,以及如何找到中值。然后你应该打印出一个中位数。你在标题中写了中位数,在描述中写了中位数。假设你寻找中位数,答案是num3。为什么不对列表进行排序呢?在那之后,唯一需要的
    if
    语句是确定列表的长度是偶数还是奇数。@DannyFried没有人说它们是排序的。还有一个愚蠢的问题:我假设你知道如何“手工”计算中值?
     int[] array = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
     int size = array.length;
        if (size % 2 == 1) { // odd
            System.out.println("Median: : " + array[size / 2]);
        } else { // even
            int sum = array[size / 2 - 1] + array[size / 2];
            System.out.println("Median: : " + (float) sum / 2);
        }