当前位置: 首页 > 知识库问答 >
问题:

读取number.txt文件并查找平均值

柳英资
2023-03-14

目前正在处理一个作业,我需要读取一个数字文件,并显示数字的总量、总偶数、总奇数以及所有三个数字的平均值。我目前正在努力寻找偶数和奇数的平均值。我必须显示偶数的平均值和奇数的平均值。我通过使用parseInt将我读取的数字字符串转换为整数来找到总平均值,这样我就可以计算平均值,但是当我尝试对偶数和奇数做同样的事情时,我无法让它工作。

这是我当前的代码:

public class Homework1 {
  public static void main(String[] args) throws IOException {
  // reads file in
  File num = new File("numbers.txt");
  Scanner inputFile = new Scanner(num);
  // creates rounding object
  DecimalFormat rounding = new DecimalFormat("#.##");
  // neccesary variables
  int count = 0;
  double numbers =0;
  int evenNum =0;
  int oddNum =0;
  double avg;
  double evenAvg;
  double oddAvg;
  double sum = 0.0;
  double evenSum = 0.0;
  double oddSum = 0.0;

  // reads in numbers file until last line is read
  while(inputFile.hasNext())
  {
         String nums = inputFile.nextLine();
  // converts string to ints so numbers can be added
         sum += Integer.parseInt(nums);
  // converts string to ints to so odd/even nums can be distinguished
         numbers = Integer.parseInt(nums);
  // updates total number count
         count++;

  // separates evens from odds
  if(numbers % 2 == 0)
      {
         evenNum++;
         evenSum += Integer.parseInt(nums);
      }

      else
         oddNum++;
         evenSum += Integer.parseInt(nums);
   } 

   // calculates total num average
   avg = sum/count; 

  // evenAvg = 
 //  oddAvg =  

   // output of credentials and results

   System.out.println("There are " +count+ " numbers in the file"+"\n");
   System.out.println("There are " +evenNum+ " even numbers"+"\n");
   System.out.println("There are " +oddNum+ " odd numbers"+"\n");
   System.out.println("The total average value is " +rounding.format(avg)+"\n"); 
   System.out.println("The odd number average is " +rounding.format(evenAvg)+"\n");
   System.out.println("The even number average is " +rounding.format(oddAvg)+"\n");

}

输出:

There are 982 numbers in the file

There are 474 even numbers

There are 508 odd numbers

The total average value is 50362.43

共有1个答案

罗法
2023-03-14

好的,所以我更正了if/else语句并添加了括号,这解决了我遇到的问题。

oddNum++;
         oddSum += Integer.parseInt(nums);
 类似资料:
  • 我正在尝试使用用户输入将数字放入一个数组,然后找到这些数字的平均值,也找到哪些数字大于平均值。这些数字进入一个数组,但当我试图求平均数时,我无法求出平均数,以及哪些数字大于平均数,因为对于试图求出大于平均数的数字的部分,并非所有变量都是可见的。但是,当我允许这个部分看到所有的变量(don't But{}围绕某些部分)时,它会找到每一个数的平均值。现在,它为每个数字打印平均值,而为大于平均值的数字打

  • 问题内容: 我必须在Python中找到列表的平均值。到目前为止,这是我的代码 我已经知道了,所以它可以将列表中的值相加,但是我不知道如何将其划分为它们? 问题答案: 在Python 3.4+上,你可以使用 statistics.mean() 在旧版本的Python上,你可以执行 在Python 2上,你需要转换len为浮点数才能进行浮点数除法 无需使用。它慢得多,并已在Python 3 中删除。

  • 我似乎无法从用户输入的分数中计算出平均分数。我也不能让它停止例外输入大于100或小于0。有人能告诉我我做错了什么吗?谢谢

  • 我试图理解新的Java8流API。 http://docs.oracle.com/javase/tutorial/collections/streams/reduction.html 我找到了使用collect API查找数字平均值的示例。但我觉得,使用reduce()也可以做到这一点。

  • 问题内容: 我无法获得熊猫列的平均值或均值。有一个数据框。我在下面尝试的任何事情都没有给我该列的平均值 以下返回几个值,而不是一个: 这样: 问题答案: 如果您只想要列的均值,请选择列(这是一个系列),然后调用:

  • 问题内容: 我有一个大文件,需要阅读并制作字典。我希望尽快。但是我在python中的代码太慢了。这是显示问题的最小示例。 首先制作一些假数据 现在,这里是一个最小的python代码片段,可以读入它并制作一个字典。 时间: 但是,可以更快地读取整个文件,如下所示: 我的CPU有8个核心,是否可以在python中并行化此程序以加快速度? 一种可能是读取大块输入,然后在不同的非重叠子块上并行运行8个进程