ZyBooks实验室2.31十进制Java

ZyBooks实验室2.31十进制Java,java,Java,当平均数字并尝试“浮动它”时,我不知道如何得到正确答案(?)我试图得到6.750的答案,但只得到6.000 说明: 2.31实验室:简单统计 第一部分 给定4个整数,使用整数算术输出其乘积和平均值 例如:如果输入为: 81054 输出为: 16006 注意:整数除法丢弃分数。因此,8 10 5 4的平均值输出为6,而不是6.75 注意:测试用例包括四个非常大的输入值,其乘积导致溢出。您不需要做任何特殊的事情,只需观察输出并不代表正确的产品(事实上,四个正数产生一个负数输出;哇) 提交以上内容进行

当平均数字并尝试“浮动它”时,我不知道如何得到正确答案(?)我试图得到6.750的答案,但只得到6.000

说明:

2.31实验室:简单统计 第一部分 给定4个整数,使用整数算术输出其乘积和平均值

例如:如果输入为:

81054 输出为:

16006 注意:整数除法丢弃分数。因此,8 10 5 4的平均值输出为6,而不是6.75

注意:测试用例包括四个非常大的输入值,其乘积导致溢出。您不需要做任何特殊的事情,只需观察输出并不代表正确的产品(事实上,四个正数产生一个负数输出;哇)

提交以上内容进行评分。在您完成下面的第2部分之前,您的程序将无法通过最后的测试用例(这是预期的)

第二部分 还可以使用浮点算法输出乘积和平均值

输出每一个小数点后三位的浮点值,具体实现如下: System.out.printf(“%.3f”,您的值)

例如:如果输入为8 10 5 4,则输出为:

16006

1600.000 6.750

这是我的密码:

import java.util.Scanner;

public class LabProgram {
   public static void main(String[] args) {
      Scanner scnr = new Scanner(System.in);
      int num1;
      int num2;
      int num3;
      int num4;
      int numAvg;
      int numProd;

      num1 = scnr.nextInt();
      num2 = scnr.nextInt();
      num3 = scnr.nextInt();
      num4 = scnr.nextInt();
     
      numAvg = ((num1 + num2 + num3 + num4) / 4);
      numProd = num1 * num2 * num3 * num4;
     
      System.out.println(numProd + " " + numAvg);
     
      System.out.printf("%.3f", ((double) numProd));
      System.out.print(" ");
      System.out.printf("%.3f", ((double) numAvg));
     
   }
}


`

本实验室要求您为每个零件编写两种不同的计算,一种用于整数,另一种用于双数。在第1部分中使用大输入将导致在打印结果之前溢出,因为您将乘积和平均值定义为整数

//Part 1
  int product = num1*num2*num3*num4;
  int average = (num1+num2+num3+num4)/4;
  System.out.println(product+" "+average);
//Part 2
  double prod = ((double)num1)*num2*num3*num4;
  double ave =  (double)(num1+num2+num3+num4)/4;
  System.out.printf("%.3f", prod);
  System.out.print(" ");
  System.out.printf("%.3f", ave);
  System.out.println();

您正在使用整数值进行操作。如果它是int类型,你怎么能期望
numAvg
包含十进制值呢?我把numAvg改成double并初始化它,我把num1改成double。Idk我正在做什么,我刚刚开始编码
numAvg
需要加倍。您需要将除法转换为double,因为您使用的所有值都是整数:
double numAvg=((double)(num1+num2+num3+num4))/4
但是现在numAvg的输出需要没有小数,却有小数,所以最初的问题是什么?如果不使用double(即,
numAvg
的类型为
int
,并且不对
double
执行任何强制转换),则只会得到整数值,这似乎是您想要的,但不是您最初要求的。