java - 从用户那里获得五个输入的最大值和最小值
问题描述
import java.util.Scanner;
class Compare
{
int max = 0;
int min = 0;
public void max(int num)
{
if(num > max)
{
max = num;
}
}
public void min(int num)
{
if(num < min)
{
min = num;
}
}
}
class Main
{
public static void main(String args[])
{
Compare compare = new Compare();
Scanner input = new Scanner(System.in);
int sets = input.nextInt();
for (int i = 0; i < sets ; i++)
{
for (int j = 0; j < 5; j++)
{
int num_main = input.nextInt();
compare.max(num_main);
compare.min(num_main);
}
System.out.println(compare.max);
System.out.println(compare.min);
}
}
}
我想计算来自用户的五个输入的最大值和最小值,我设法获得最大值但未能获得最小值,而是我得到 0 作为我的最小值,该最小值是从之前在类比较中初始化的。我怎样才能以最简单的方式获得最小值
解决方案
您将 0 作为最小值的原因是因为当您调用时,您的值与等于 0compare.min(num);
的预定义本地值进行比较。min
当您将任何正数与 0 进行比较时,您将得到 0 作为最小值。
一个可行的解决方案是
class Compare
{
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
public void max(int num)
{
if(num > max)
{
max = num;
}
}
public void min(int num)
{
if(num < min)
{
min = num;
}
}
}
这将保证您首先比较的内容将保存为最小值,然后用作整个程序执行的新最小值。
推荐阅读
- java - Hibernate 验证器和 Spring 版本的兼容性
- flutter - 错误“无法识别术语‘解锁文件’”
- ffmpeg - 复制摄像头和麦克风以跨多个程序使用
- android - 应用程序在关闭对等连接时崩溃 appRTC android
- python - PySpark GroupBy - 如果没有值,则保留值或 Null
- mysql - MySQL排序,忽略开头的前两个符号
- python - tkinter 按钮文本颜色没有改变
- sql - postgresql 获取数组中最常见的值
- python - 在 Logistic 回归中将 CI 更改为 95%
- angular - 如何从firebase实时数据库中获取单个项目?