如何从一组input的数字中获得最大值和最小值?
以下是我到目前为止:
我不知道如何排除0作为最小数字。 分配要求0作为出口编号,所以我需要在最小string中出现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);
你只需要跟踪这样一个最大值:
int maxValue = 0;
然后,在迭代数字时,如果maxValue大于maxValue,则将maxValue设置为下一个值:
if (value > maxValue) { maxValue = value; }
重复minValue相反的方向。
这是一个可能的解决scheme:
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); } }
(不确定使用int还是double思想)
这是更好(没有用,如果)
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); } }
//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); } }
这是我做的,它的工作尝试和玩弄它。 它计算总和,平均值,最小值和最大值。
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);} }
在这里你需要跳过int 0,如下所示:
val = s.nextInt(); if ((val < min) && (val!=0)) { min = val; }