2015-10-05 185 views
-1

我正在为这个代码苦苦挣扎。我需要编写一个程序,从标准输入中读取任意数量的数据点。然后它返回值的数量,最小/最大值和平均值。我没有取得很大的进展,但这是我的全部。预先感谢您的帮助。在Java中查找num值和最小值/最大值值

public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 

    double num,sum=0,min,max; 
    max = Integer.MAX_VALUE; 
    min = Integer.MIN_VALUE; 
    int Date=0; 
    while (input.hasNext()) { 
     num=input.nextDouble(); 
      sum+=num; 
      Date++; 
      if(num>=max) 

      { 
      max=num; 
      System.out.println(max); 
      } 
      if(num<min) 
      { 
      min=num; 
      System.out.println(min); 
      } 
    } 
} 
+0

你的代码的哪一部分正在评估min/max/avg? –

+0

while循环中的条件应该是input.hasNext() –

回答

1

创建局部变量和初始化它们喜欢:

int count; 
double min = Double.MAX_VALUE; 
double max = Double.MIN_VALUE; 
double sum = 0; 

每当你读取输入的双重价值,做这样:

count++; 

if (d<min) min = d; 
if (d>max) max = d; 

sum += d; 

最后

double average = sum/count; 
+0

谢谢!我将使用另一个测量天气信息的程序的输入,那么我怎样才能做到这一点呢?我需要衡量日期,时间和价值。 – javakook

+0

更改拼写错误,应该分配Double.MAX_VALUE,MIN_Value但不是整数。 –

+0

看起来你正在做这个任务。它是一个Java编程任务或其他东西?如果不是编程任务,您可以通过许多简单的方法获得结果。你可以尝试简单的Excel。 回到编程,来自另一个程序的输入是来自一个文本文件吗?你打算获取最大值/最小值/平均值的值吗?什么是“措施”呢? –

0
import java.util.Scanner; 
public class Assignment4 { 

    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 

     double num,sum=0,min,max; 
     max = Integer.MAX_VALUE; 
     min = Integer.MIN_VALUE; 
     int count=0; 
     while (input.hasNext()) { 
       num=input.nextInt(); 
       sum+=num; 
       count++; 
       if(num>=max) 
       { 
       max=num; 
       } 
       if(num<min) 
       { 
       min=num; 
       } 
     } 
     double avg=sum/count; 
     System.out.println("The Average of Numbers is:"+avg); 
     } 

} 
+0

如何添加日期变量我正在测量最小/最大值和平均值? – javakook

+0

日期变量是从用户那里获取输入吗? num = input.nextInt();将其更改为 num = input.nextDouble(); 它需要用户输入 –

+0

谢谢。为了得到最小/最大/平均值的时间以及我只是做一个类似的事情? – javakook

相关问题