java - ZyBooks Lab 2.31 小数 Java
问题描述
当平均数字并试图“浮动它”(?)时,我无法弄清楚如何得到正确的答案(?)我试图得到 6.750 的答案,但只能继续得到 6.000。
指示:
2.31 实验室:简单统计第 1 部分给定 4 个整数,使用整数算术输出它们的乘积和它们的平均值。
例如:如果输入是:
8 10 5 4 输出为:
1600 6 注意:整数除法会丢弃分数。因此 8 10 5 4 的平均值输出为 6,而不是 6.75。
注意:测试用例包括四个非常大的输入值,其乘积会导致溢出。你不需要做任何特别的事情,只要观察输出不代表正确的产品(事实上,四个正数产生一个负输出;哇)。
提交以上内容进行评分。在您完成下面的第 2 部分之前,您的程序将失败最后一个测试用例(这是预期的)。
第 2 部分还使用浮点运算输出乘积和平均值。
输出每个小数点后三位的浮点值,可实现如下: System.out.printf("%.3f", yourValue);
例如:如果输入为 8 10 5 4,则输出为:
1600 6
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));
}
}
`
解决方案
本实验要求您为每个部分编写 2 种不同的计算,一种用于整数,另一种用于双数。在第 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();
推荐阅读
- azure - 我可以使用自定义策略为 MFA 使用两个电子邮件地址吗?
- api-platform.com - 无法访问服务器上的管理界面
- ios - 无需调用处理程序块即可满足通知的期望
- angular - ngOnChanges 未被调用,但视图已正确更新
- angular - Angular 中连续 HTTP 请求的动态数量
- python - 对来自两个不同 JSON 文件的具有相同 ID 的对象进行分组
- javascript - Chart.js,你能覆盖图例标签框的颜色吗?
- wordpress - 如何让 WordPress 评论审核电子邮件仅发送给网站管理员
- deep-learning - 使用什么算法将我的数据分类为 3 类
- django - 如何从模型中预填充 Django 表单