gpt4 book ai didi

java - 找到较高和较低的数字

转载 作者:行者123 更新时间:2023-11-30 05:56:21 25 4
gpt4 key购买 nike

我需要编写一个程序,从用户 5 中获取数字 (a b c d e)并将打印最低和最高数字。我怎样才能做到这一点并使用更少的 if-els 条件? 我不能使用 arry 或循环。

    if (a>b) {
min=b ;
max=a ;
}else {
min=a ;
max=b ;
int temp = a ;
a=b ;
b=temp ;
}
if (b>c) {
min=c ;
}else {
if(c>max) {
max=c ;}
int temp = b ;
b=c ;
c=temp ;
}
if (c>d) {
min=d ;
}else {
if(d>max) {
max=d ;}
int temp = c ;
c=d ;
d=temp ;
}
if (d>e) {
min=e ;

}else {
if(e>max) {
max=e ;}
int temp = d ;
d=e ;
e=temp ;}

最佳答案

一种选择是将五个输入数字添加到数组中,然后使用流查找最小值和最大值:

int a = myScanner.nextInt();
int b = myScanner.nextInt();
int c = myScanner.nextInt();
int d = myScanner.nextInt();
int e = myScanner.nextInt();
int[] vals = {a, b, c, d, e};
int min = Arrays.stream(vals).min().getAsInt();
int max = Arrays.stream(vals).max().getAsInt();
System.out.println(min);
System.out.println(max);

另一种选择可能是使用集合(例如列表)来存储五个输入数字。然后,我们可以对该集合进行排序,并以这种方式找到最小值/最大值。使用某种集合可能是实现此目的的最佳方法。

编辑:

如果您必须使用if语句,那么一个选择可能是成对比较前两个和后两个数字,然后从结果中找到最小值/最大值三个数字。我改编了 this Code Review 中的 minmax 方法。问题。它找到三个数字的最小值和最大值,因此我们只需要提出额外的逻辑即可将您的五个输入减少到三个。

public static int min(int a, int b, int c) {
if (a <= b && a <= c) return a;
if (b <= a && b <= c) return b;
return c;
}

public static int max(int a, int b, int c) {
if (a >= b && a >= c) return a;
if (b >= a && b >= c) return b;
return c;
}

// now the logic for your inputs a, b, c, d, e
int min1 = a <= b ? a : b;
int min2 = c <= d ? c : d;
int max1 = a >= b ? a : b;
int max2 = c >= d ? c : d;

int finalmin = min(min1, min2, e);
int finalmax = max(max1, max2, e);

关于java - 找到较高和较低的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53097668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com