如何在java中找到最接近零的五个输入数
我是java编程新手。有人可以教你如何使用如何在java中找到最接近零的五个输入数,java,java.util.scanner,Java,Java.util.scanner,我是java编程新手。有人可以教你如何使用扫描仪获取最接近零的数字。示例用户插入第一个数字=-4,第二个数字=3,以此类推,数字越大,则接近零的答案为3 下面是代码 import java.util.Scanner; class NearZero { public static void main(String[]args) { Scanner scn = new Scanner(System.in); int firstNumber,secondNumber,third
扫描仪
获取最接近零的数字。示例用户插入第一个数字=-4,第二个数字=3,以此类推,数字越大,则接近零的答案为3
下面是代码
import java.util.Scanner;
class NearZero {
public static void main(String[]args) {
Scanner scn = new Scanner(System.in);
int firstNumber,secondNumber,thirdNumber,fourNumber,fiveNumber;
int nearNumberZero;
System.out.println("Enter number 1");
firstNumber = scn.nextInt();
System.out.println("Enter number 2");
secondNumber = scn.nextInt();
System.out.println("Enter number 3");
thirdNumber = scn.nextInt();
System.out.println("Enter number 4");
fourNumber = scn.nextInt();
System.out.println("Enter number 5");
fiveNumber = scn.nextInt();
nearNumberZero =
System.out.println("The number near zero 0 is");
}
}
只需使用Math.abs对它们进行比较:
int bestNumber = firstNumber;
if (Math.abs(secondNumber) < Math.abs(bestNumber)) {
bestNumber = secondNumber;
}
if (Math.abs(thirdNumber) < Math.abs(bestNumber)) {
bestNumber = thirdNumber;
}
and so on...
理想情况下,您应该构建一个循环来询问和比较数字,而不是将同一代码重复五次。您可以将其作为下一个练习。只需使用Math.abs对它们进行比较:
int bestNumber = firstNumber;
if (Math.abs(secondNumber) < Math.abs(bestNumber)) {
bestNumber = secondNumber;
}
if (Math.abs(thirdNumber) < Math.abs(bestNumber)) {
bestNumber = thirdNumber;
}
and so on...
理想情况下,您应该构建一个循环来询问和比较数字,而不是将同一代码重复五次。你可以让这成为你的下一个练习。试试这个:
import java.util.*;
class NearZero {
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
ArrayList<Integer> integers = new ArrayList<>();
System.out.println("Enter number 1");
integers.add(scn.nextInt());
System.out.println("Enter number 2");
integers.add(scn.nextInt());
System.out.println("Enter number 3");
integers.add(scn.nextInt());
System.out.println("Enter number 4");
integers.add(scn.nextInt());
System.out.println("Enter number 5");
integers.add(scn.nextInt());
Collections.sort(integers, Comparator.comparingInt(Math::abs));
System.out.println("The number near zero 0 is" + integers.get(0));
}
}
import java.util.*;
类接近零{
公共静态void main(字符串[]args){
扫描仪scn=新扫描仪(System.in);
ArrayList整数=新的ArrayList();
System.out.println(“输入数字1”);
add(scn.nextInt());
System.out.println(“输入数字2”);
add(scn.nextInt());
System.out.println(“输入数字3”);
add(scn.nextInt());
System.out.println(“输入数字4”);
add(scn.nextInt());
System.out.println(“输入数字5”);
add(scn.nextInt());
Collections.sort(整数,Comparator.comparingInt(Math::abs));
System.out.println(“接近零的数字0是”+整数.get(0));
}
}
试试这个:
import java.util.*;
class NearZero {
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
ArrayList<Integer> integers = new ArrayList<>();
System.out.println("Enter number 1");
integers.add(scn.nextInt());
System.out.println("Enter number 2");
integers.add(scn.nextInt());
System.out.println("Enter number 3");
integers.add(scn.nextInt());
System.out.println("Enter number 4");
integers.add(scn.nextInt());
System.out.println("Enter number 5");
integers.add(scn.nextInt());
Collections.sort(integers, Comparator.comparingInt(Math::abs));
System.out.println("The number near zero 0 is" + integers.get(0));
}
}
import java.util.*;
类接近零{
公共静态void main(字符串[]args){
扫描仪scn=新扫描仪(System.in);
ArrayList整数=新的ArrayList();
System.out.println(“输入数字1”);
add(scn.nextInt());
System.out.println(“输入数字2”);
add(scn.nextInt());
System.out.println(“输入数字3”);
add(scn.nextInt());
System.out.println(“输入数字4”);
add(scn.nextInt());
System.out.println(“输入数字5”);
add(scn.nextInt());
Collections.sort(整数,Comparator.comparingInt(Math::abs));
System.out.println(“接近零的数字0是”+整数.get(0));
}
}
您可以在循环中将输入保留到您的号码
,因为操作是相同的,并按照以下方式操作
import java.util.Scanner;
class NearZero {
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
int number;
int nearNumberZero = 0;
for (int i = 1; i <= 5; i++) {
System.out.println("Enter number " + i);
number = scn.nextInt();
// by default first is nearest or it will check for other numbers
if (i == 1 || Math.abs(number) < Math.abs(nearNumberZero))
nearNumberZero = number;
}
System.out.println("The number near zero 0 is - " + nearNumberZero);
scn.close();//prefer closing your resources (with a try-finally preferrable)
}
}
import java.util.Scanner;
类接近零{
公共静态void main(字符串[]args){
扫描仪scn=新扫描仪(System.in);
整数;
int nearNumberZero=0;
对于(int i=1;i您可以在循环中将输入保持为您的数字,因为操作相同,如下所示
import java.util.Scanner;
class NearZero {
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
int number;
int nearNumberZero = 0;
for (int i = 1; i <= 5; i++) {
System.out.println("Enter number " + i);
number = scn.nextInt();
// by default first is nearest or it will check for other numbers
if (i == 1 || Math.abs(number) < Math.abs(nearNumberZero))
nearNumberZero = number;
}
System.out.println("The number near zero 0 is - " + nearNumberZero);
scn.close();//prefer closing your resources (with a try-finally preferrable)
}
}
import java.util.Scanner;
类接近零{
公共静态void main(字符串[]args){
扫描仪scn=新扫描仪(System.in);
整数;
int nearNumberZero=0;
对于(inti=1;i,您不需要任何花哨的比较器或列表
定义一个小助手方法:
static int chooseClosestToZero(int a, int b) {
return Math.abs(a) < Math.abs(b)) ? a : b;
}
现在只需调用该方法即可更新:
System.out.println("Enter number 1");
closestToZero = chooseClosestToZero(closestToZero, scn.nextInt());
System.out.println("Enter number 2");
closestToZero = chooseClosestToZero(closestToZero, scn.nextInt());
// etc.
如所述,您可以在循环中执行此操作:
for (int i = 1; i <= 5; ++i) {
System.out.println("Enter number " + i);
closestToZero = chooseClosestToZero(closestToZero, scn.nextInt());
}
通过此更改,您可以使用Integer.MIN\u值
作为最接近零的的初始值,而int
的初始值实际上离零最远。您不需要任何花哨的比较器或列表
定义一个小助手方法:
static int chooseClosestToZero(int a, int b) {
return Math.abs(a) < Math.abs(b)) ? a : b;
}
现在只需调用该方法即可更新:
System.out.println("Enter number 1");
closestToZero = chooseClosestToZero(closestToZero, scn.nextInt());
System.out.println("Enter number 2");
closestToZero = chooseClosestToZero(closestToZero, scn.nextInt());
// etc.
如所述,您可以在循环中执行此操作:
for (int i = 1; i <= 5; ++i) {
System.out.println("Enter number " + i);
closestToZero = chooseClosestToZero(closestToZero, scn.nextInt());
}
通过此更改,您可以使用Integer.MIN\u VALUE
作为最接近零的的初始值,该值实际上与int
的值相差很远。“有人可以教”这不是一个教学网站。在获取数字方面,你有一个良好的开端;但是试一下,看看你能走多远。然后回来问一个具体的问题,为什么这样做不起作用:)“有人可以教学”这不是一个教学网站。你已经有了一个很好的开始,在获取数字方面;但是试着看看你能走多远。然后回来问一个具体的问题,关于为什么这样做不起作用:)这对OP的示例输入不起作用。感谢Andy Turner,我错过了一些东西并修复了itOK,它现在可以工作了;但您不需要将数字放入列表并对它们进行排序以找到最小值。是的,这是真的,但我对Addy Sahaja实现做了较少的编码更改。这对OP的示例输入不起作用。感谢Andy Turner,我错过了d一些东西并修复了itOK,它现在可以工作了;但是您不需要将数字放入列表并对它们进行排序以找到最小值。是的,这是真的,但我对Addy Sahaja实现做了较少的编码更改