Java,比较3个整数,安排最大值、中位数和最小值

5

我被分配了一份作业,要求提示用户输入3个正整数,然后按最大值、中位数和最小值的顺序进行比较并输出。

提示用户并编写 while 循环以检查数字是否为正数是可以的。我也可以想出如何打印最大和最小的整数。

(类似这样的代码?)

 if (a >= b) 
       if (a >= c) { max= a; if (b >= c) min= c; else min= b; }
       else { max= c; min= b; }
    else if (b >= c)
       { max= b; if (a >= c) min= c; else min= a; }
    else { max= c; if (a >= b) min= b; else min= a; }

我该如何使用这个模式计算中间的整数?最好不要使用数组,因为教授还没有讲解它们。感谢您的任何帮助!

1
使用 Math.maxMath.min 怎么样? - Boris the Spider
当你设置min=..时,你知道最小值和最大值是什么,那么只设置middle=..呢? - ug_
@BoristheSpider - 如果他可以使用库方法,那么Arrays.sort(int[])就可以给出一个三行的答案。(是的,我知道他可能不想使用数组...) - Stephen C
3个回答

9

将三个数字存储在三个变量 a b c 中,然后使用分支逻辑来确定顺序。您在此处拥有解决此问题所需的一切。

例如:

if (a > b && a > c) {
    //Here you determine second biggest, but you know that a is largest
}

if (b > a && b > c) {
    //Here you determine second biggest, but you know that b is largest
}    

if (c > b && c > a) {
    //Here you determine second biggest, but you know that c is largest
}

在上面的注释中,您可以确定 mediansmallest 数字。虽然代码有些冗长,但由于您说不使用数组,这是最直接理解问题的方法。


非常感谢!如果您投票支持我的问题,我将获得15点声望,然后我可以为您的答案投票,因为我不认为它应该得到-1。 - andrsnn
没问题。不确定为什么我被踩了,但是StackOverflow有时候会很难搞。我已经给你的问题点赞了。如果你愿意,你也可以通过点击我的分数下面的复选标记来接受我的回答。 - Kon
1
终于在9年后接受了你的答案,@Kon。 - andrsnn

0

代码1是用来检查最大的数

if (a > b && a > c) {
    // a is biggest number   
}    
if (b > a && b > c) {
    //b is biggest number
}    
if (c > b && c > a) {
    //c is biggest
}

代码2是用来检查第二大的数字

if (a > b && a > c) {
     if(b>c){
         System.out.println(b);
         }
     else{
         System.out.println(c);
         }
}
if (b > a && b > c) {
     if(a>c){
         System.out.println(a);
         }
      else{
          System.out.println(c);
      mm }
}
 if (c > b && c > a) {
      if(b>a){
          System.out.println(b);
          }
       else{
        System.out.println(a);
         }
}

代码3用于检查第三个最大或最小的数字

if (a > b && a > c) {
     if(b>c){
         System.out.println(c);
         }
     else{
         System.out.println(b);
         }
}
if (b > a && b > c) {
     if(a>c){
         System.out.println(c);
      }
      else{
          System.out.println(a);
       }
}
 if (c > b && c > a) {
      if(b>a){
          System.out.println(a);
          }
       else{
        System.out.println(b);
       }
}

0
    int a=2;
    int b=4;
    int c=5;

    if(c>b && c>a){
        system.out.println("c is greater");
    }
    if(b>a && b>c){
        system.out.println("b is greater");
    }
    if(a>c && a>b){
        system.out.println("a is greater");

2
这只解释了问题的一部分 ;) - Stephan Hogenboom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接