Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
4.24实验:作业查找最大绝对数Java_Java - Fatal编程技术网

4.24实验:作业查找最大绝对数Java

4.24实验:作业查找最大绝对数Java,java,Java,我正在尝试使用绝对数学打印最大的数字。方法。除了跑步,我得到的号码不同 编写一个输入为三个整数,输出为三个值中最大值(绝对值)的程序 例如:如果输入为: 10-30 29 输出为: 三十 如果引入另一个变量(如果允许的话),可以简化条件。此外,您还需要在设置每个输入时获取它们的绝对值,以便所有比较都使用正整数完成。这是我用过的,效果很好 import java.util.Scanner; public class LabProgram { public static void main

我正在尝试使用绝对数学打印最大的数字。方法。除了跑步,我得到的号码不同

编写一个输入为三个整数,输出为三个值中最大值(绝对值)的程序

例如:如果输入为:

10-30 29 输出为:

三十


如果引入另一个变量(如果允许的话),可以简化条件。此外,您还需要在设置每个输入时获取它们的绝对值,以便所有比较都使用正整数完成。这是我用过的,效果很好

import java.util.Scanner;

public class LabProgram {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int x = Math.abs(in.nextInt());
        int y = Math.abs(in.nextInt());
        int z = Math.abs(in.nextInt());

        int largest = x;
        if (y > largest) {
            largest = y;
        }
        if (z > largest) {
            largest = z;
        }
        System.out.print(largest);
    }
}
如果你对使用三元运算符感兴趣的话,可以把事情缩小一点

import java.util.Scanner;

public class LabProgram {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int x = Math.abs(in.nextInt());
        int y = Math.abs(in.nextInt());
        int z = Math.abs(in.nextInt());

        int largest = x > y ? x : y;
        largest = z > largest ? z : largest;
        System.out.print(largest);
    }
}
如果你可以使用,那么我假设你可以使用,这样问题就可以像

Scanner in = new Scanner(System.in);
int x = in.nextInt(), y = in.nextInt(), z = in.nextInt();
System.out.println(Math.max(Math.max(Math.abs(z), Math.abs(y)), Math.abs(x)));
至于您当前的代码,您正在比较原始值(而不是绝对值),您可能应该以
else
结束(因此您有一个默认结果)-


下面是一个使用三元运算符解决类似问题的方法。一种方法用于查找最大数,另一种方法用于查找三个数中的最小数

import java.util.Scanner; 

public class LabProgram {
   
   public static int largestNumber(int num1, int num2, int num3){
      int largestNumber = num1>num2?(num1>num3?num1:num3):(num2>num3?num2:num3);
      return largestNumber;
   }
          
   public static int smallestNumber(int num1, int num2, int num3){
      int smallestNumber = num3<(num1<num2?num1:num2)?num3:(num1<num2?num1:num2);
      return smallestNumber;
   }
          
   public static void main(String[] args) {
      Scanner scnr = new Scanner(System.in);
      int a = scnr.nextInt();
      int b = scnr.nextInt();
      int c = scnr.nextInt();
      
      System.out.println("largest: " + largestNumber(a,b,c));
      System.out.println("smallest: " + smallestNumber(a,b,c));   
   }
}
import java.util.Scanner;
公共类实验室计划{
公共静态最大整数(整数m1、整数m2、整数m3){
int largestNumber=num1>num2?(num1>num3?num1:num3):(num2>num3?num2:num3);
返回最大数量;
}
公共静态int smallestNumber(int num1、int num2、int num3){

int smallestNumber=num3我建议您阅读一下
Math.abs的功能。它不返回数字的绝对值吗?您知道这里的分号:
else if(z>x&&z>y);{…
短路else条件不起作用。打印29只需取x、y、z的绝对值,然后取其中的最大值..so-30->+30等!了解整数有最小值和最大值非常有用..使用第四个变量并设置为最小值-然后检查每个值,如果x、y或z的值大于第四个变量,则替换第四个值。打印时结束。设计得很好,我认为我的问题是没有为声明正确放置Math.abs。相反,在if和else if语句后面和下面不会打印最大的数字。这似乎很好。谢谢!!我明白了。非常感谢。
if (Math.abs(x) > Math.abs(y) && Math.abs(x) > Math.abs(z)) {
    System.out.print(Math.abs(x));
} else if (Math.abs(y) > Math.abs(x) && Math.abs(y) > Math.abs(z)) {
    System.out.print(Math.abs(y));
} else { // you want a default case, and if you get here 'z' is it.
    System.out.print(Math.abs(z));
}
import java.util.Scanner; 

public class LabProgram {
   
   public static int largestNumber(int num1, int num2, int num3){
      int largestNumber = num1>num2?(num1>num3?num1:num3):(num2>num3?num2:num3);
      return largestNumber;
   }
          
   public static int smallestNumber(int num1, int num2, int num3){
      int smallestNumber = num3<(num1<num2?num1:num2)?num3:(num1<num2?num1:num2);
      return smallestNumber;
   }
          
   public static void main(String[] args) {
      Scanner scnr = new Scanner(System.in);
      int a = scnr.nextInt();
      int b = scnr.nextInt();
      int c = scnr.nextInt();
      
      System.out.println("largest: " + largestNumber(a,b,c));
      System.out.println("smallest: " + smallestNumber(a,b,c));   
   }
}