Java 如何从输入的一组数字中获取最大值和最小值?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/19671453/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How do I get the max and min values from a set of numbers entered?
提问by user2934299
Below is what I have so far:
以下是我到目前为止所拥有的:
I don't know how to exclude 0 as a min number though. The assignment asks for 0 to be the exit number so I need to have the lowest number other than 0 appear in the min string. Any ideas?
我不知道如何排除 0 作为最小数字。该分配要求 0 作为退出编号,因此我需要在最小字符串中出现 0 以外的最低数字。有任何想法吗?
int min, max;
Scanner s = new Scanner(System.in);
System.out.print("Enter a Value: ");
int val = s.nextInt();
min = max = val;
while (val != 0) {
System.out.print("Enter a Value: ");
val = s.nextInt();
if (val < min) {
min = val;
}
if (val > max) {
max = val;
}
};
System.out.println("Min: " + min);
System.out.println("Max: " + max);
回答by MattSenter
You just need to keep track of a max value like this:
您只需要跟踪这样的最大值:
int maxValue = 0;
Then as you iterate through the numbers, keep setting the maxValue to the next value if it is greater than the maxValue:
然后,当您遍历数字时,如果它大于 maxValue,则继续将 maxValue 设置为下一个值:
if (value > maxValue) {
maxValue = value;
}
Repeat in the opposite direction for minValue.
以相反的方向重复 minValue。
回答by Maxime Chéramy
Here's a possible solution:
这是一个可能的解决方案:
public class NumInput {
public static void main(String [] args) {
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
Scanner s = new Scanner(System.in);
while (true) {
System.out.print("Enter a Value: ");
int val = s.nextInt();
if (val == 0) {
break;
}
if (val < min) {
min = val;
}
if (val > max) {
max = val;
}
}
System.out.println("min: " + min);
System.out.println("max: " + max);
}
}
(not sure about using int or double thought)
(不确定使用 int 或双重思想)
回答by Malav Shelat
//for excluding zero
public class SmallestInt {
public static void main(String[] args) {
Scanner input= new Scanner(System.in);
System.out.println("enter number");
int val=input.nextInt();
int min=val;
//String notNull;
while(input.hasNextInt()==true)
{
val=input.nextInt();
if(val<min)
min=val;
}
System.out.println("min is: "+min);
}
}
回答by Zuko Khephu
This is what I did and it works try and play around with it. It calculates total,avarage,minimum and maximum.
这就是我所做的,它可以尝试使用它。它计算总数、平均值、最小值和最大值。
public static void main(String[] args) {
int[] score= {56,90,89,99,59,67};
double avg;
int sum=0;
int maxValue=0;
int minValue=100;
for(int i=0;i<6;i++){
sum=sum+score[i];
if(score[i]<minValue){
minValue=score[i];
}
if(score[i]>maxValue){
maxValue=score[i];
}
}
avg=sum/6.0;
System.out.print("Max: "+maxValue+"," +" Min: "+minValue+","+" Avarage: "+avg+","+" Sum: "+sum);}
}
回答by gadolf
It is better
这个比较好
public class Main {
public static void main(String[] args) {
System.out.print("Enter numbers: ");
Scanner input = new Scanner(System.in);
double max = Double.MIN_VALUE;
double min = Double.MAX_VALUE;
while (true) {
if ( !input.hasNextDouble())
break;
Double num = input.nextDouble();
min = Math.min(min, num);
max = Math.max(max, num);
}
System.out.println("Max is: " + max);
System.out.println("Min is: " + min);
}
}
回答by newbie
here you need to skip int 0 like following:
在这里你需要像下面这样跳过 int 0:
val = s.nextInt();
if ((val < min) && (val!=0)) {
min = val;
}
回答by Abdullah Almasud
System.out.print("Enter a Value: ");
val = s.nextInt();
This line is placed in last.The whole code is as follows:-
这一行放在最后。整个代码如下:-
public static void main(String[] args){
int min, max;
Scanner s = new Scanner(System.in);
System.out.print("Enter a Value: ");
int val = s.nextInt();
min = max = val;
while (val != 0) {
if (val < min) {
min = val;
}
if (val > max) {
max = val;
}
System.out.print("Enter a Value: ");
val = s.nextInt();
}
System.out.println("Min: " + min);
System.out.println("Max: " + max);
}