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

Java计算平均值

纪秋月
2023-03-14

我试图做以下java分配和每件事似乎工作正常,除了当我把一个数字

谢谢

赋值:创建一个询问考试结果并计算成绩平均值的程序。成绩是4到10之间的浮点数。程序要求成绩,直到键入负数。如果用户给出的分数不是4到10之间的数字,则文本“无效成绩!”将在屏幕上打印,程序要求另一个分数。最后,程序在屏幕上打印输入的成绩数及其平均值,如示例打印所示。如果没有输入成绩,通知“您没有输入任何成绩。”是屏幕上唯一打印的内容。

提示:双类型变量用于存储平均值。

程序被写入一个名为Average的类。

示例输出

程序计算输入分数的平均值。以负整数结束。

Input a grade (4-10): 5
Input a grade (4-10): 6,5
Input a grade (4-10): 7,5
Input a grade (4-10): 7
Input a grade (4-10): 0
Invalid grade!
Input a grade (4-10): -4

4 grades inputted.

Average of the grades: 6.5

密码

import java.util.Scanner;
public class apples {

   public static void main(String[] args) {

      int inputNumber=0;   
      int sum;           
      int count;         
      double average;    



      sum = 0;
      count = 0;


      Scanner reader = new Scanner(System.in);
      System.out.println("Program calculates the average of inputted grades.");
      System.out.println("Finish with a negative integer.");
      System.out.print("Input a grade (4-10): ");
      inputNumber = reader.nextInt();


      while (inputNumber > 0 && inputNumber>=4 && inputNumber<=10) {
         sum += inputNumber;   
         count++;              
         System.out.print("Input a grade (4-10): ");
         inputNumber = reader.nextInt();

      }

      if (inputNumber<4 || inputNumber>10) {
          System.out.println("Invalid grade!");
      }

      if (count==0) {
          System.out.print("You didn't enter any data!");
      }
      else {
         average = ((double)sum) / count;
         System.out.println();
         System.out.println(count + " grades inputted.");
         System.out.print("Average of the grades: "+ average);
      }

   } 

} 

共有3个答案

麹耘豪
2023-03-14

当您以负整数结束时,输入数将始终小于4,因此

if (inputNumber<4 || inputNumber>10) {
      System.out.println("Invalid grade!");
  }

总是真实的。

将其更改为以下(更易于阅读):

 do {    
      System.out.print("Input a grade (4-10): ");
      inputNumber = reader.nextInt(); 
      if (inputNumber<4 || inputNumber>10) {
         break ; // 
      }
    sum += inputNumber;   
    count++;              


  }while (count <= 4) {

  if (count==0) {
      System.out.print("You didn't enter any data!");
  }
马胜泫
2023-03-14

是的,一个if-else将在这里有所帮助,但是你把它放在哪里也很重要。

    while (inputNumber > 0) {
        if (inputNumber<4 || inputNumber>10) {
            System.out.println("Invalid grade!");
        } else {
            sum += inputNumber;
            count++;
        }
        System.out.print("Input a grade (4-10): ");
        inputNumber = reader.nextInt();
    }
尹正奇
2023-03-14

在第二个if之前放入else,因此仅当第一个if不是:

if (inputNumber<4 || inputNumber>10) {
    System.out.println("Invalid grade!");
} else if (count==0) {
    System.out.print("You didn't enter any data!");
}
 类似资料:
  • 问题内容: 编辑:我已经写了平均的代码,但我不知道如何使它也使用从我的args.length而不是数组的整数 我需要编写一个Java程序,该程序可以计算:1.读入的整数数2.平均值-不必是整数! 注意!我不想从数组中计算平均值,但是要在args中计算整数。 目前我已经写了这个: 谁能指导我正确的方向?还是举个例子,以书面形式指导我塑造这段代码? 提前致谢 问题答案: 只需对您的代码进行一些小的修改

  • 问题内容: 我有一个表,其中包含一列要从中提取信息的JSON数据。具体来说,我只想获取平均值。 我所拥有的例子: 我想要的例子: 关于如何使该查询正常工作的任何建议? 问题答案: 您的json数组被弄乱了,就像@poszcommented一样。必须是: 您的查询也以多种方式扭曲。在第 9.3 页中将像这样工作: SQL提琴。 在即将到来的pg 9.4中, 我们可以使用新的来简化操作(转换中也不太容

  • 问题内容: 我正在尝试根据前三个月的实际情况或预测来计算销售预测。 假设我要计算 每个 公司未来18个月的预测。 我正在查看去年的数据。一些公司有例如2个月的数据,而其他12个月等等。 我已经搜索并找到了许多不同的解决方案,但是所有这些解决方案都只考虑了实际情况。 我认为我必须进行递归CTE,但我无法弄清楚。 请帮忙 :) 问题答案: 因此,您想要基于先前的移动平均线的移动平均线:)我认为,在SQ

  • 我试图从购物车(ArrayList)中计算平均值。平均值是指所有产品的总和除以它的数量?,如果我错了请纠正我,也许这就是为什么我的逻辑不太好用。 我试图做一个循环来计算所有乘积的总和,然后除以它的数量。

  • 问题内容: Y1961 Y1962 Y1963 Y1964 Y1965 Region 0 82.567307 83.104757 83.183700 83.030338 82.831958 US 1 2.699372 2.610110 2.587919 2.696451 2.846247 US 2 14.131355 13.690028 13.599516 13.649176 13.649046

  • 问题内容: 美好的一天, 我正在使用以下代码来计算9天移动平均线。 但这是行不通的,因为它会在调用限制之前先计算所有返回的字段。换句话说,它将计算该日期之前或等于该日期的所有关闭时间,而不仅仅是最后9个。 因此,我需要从返回的选择中计算出SUM,而不是直接计算出来。 IE浏览器 从SELECT中选择SUM … 现在我将如何去做,这是非常昂贵的还是有更好的方法? 问题答案: 使用类似 内查询返回的所