如何完善PositiveMinMaxAvg.java代码以计算正数值的最小最大值平均值?
问题描述
请在名为PositiveMinMaxAvg.java的文件中编写一个包含main方法的类,该方法要求所有命令行参数均可作为Double.parseDouble的合法输入。程序需计算命令行参数中解析为double类型且严格大于0的数值里,最小值与最大值的平均值并打印。若大于0的数值不足2个,则输出0。例如,若参数为-1.5、2.5、3.5、5,结果应为(2.5+5)/2=3.75(2.5是最小正数,5是最大正数)。
你的代码:
public class PositiveMinMax { //static double max = 0, total = 0, min, result, i; //static String i; public static void main(String[] args) { double max = 0, total = 0, min; min = Double.parseDouble(args[0]); //for(int s = 0; s < args.length; s++) for (String s:args) { double value = Double.parseDouble(s); //double value2 = Double.parseDouble(args[s]); if (max < value) { max = value; } //min = Double.parseDouble(args[s]); if (min>value) { min = value; } total = min + max; } System.out.println(total/2); } }
你的疑问:我想知道需要在代码中添加哪些内容才能解决该问题,如何仅获取数组中的正数值的最小值和最大值、排除负数,我尝试了多种方法但始终无法实现。
解决方案
你的代码存在三个核心问题:未过滤正数、极值初始化逻辑错误、未统计有效正数数量。以下是修正后的完整代码:
public class PositiveMinMaxAvg { public static void main(String[] args) { double minPositive = Double.MAX_VALUE; // 初始化为最大double值,确保第一个正数能覆盖它 double maxPositive = Double.MIN_VALUE; // 初始化为最小double值,确保第一个正数能覆盖它 int positiveCount = 0; // 统计严格大于0的数值数量 for (String arg : args) { double value = Double.parseDouble(arg); // 仅处理严格大于0的数值 if (value > 0) { positiveCount++; // 更新最小正数 if (value < minPositive) { minPositive = value; } // 更新最大正数 if (value > maxPositive) { maxPositive = value; } } } // 根据正数数量决定输出结果 if (positiveCount >= 2) { double average = (minPositive + maxPositive) / 2; System.out.println(average); } else { System.out.println(0); } } }
关键修改说明
- 过滤正数:通过
if (value > 0)判断,只处理符合要求的数值,直接排除负数和0 - 合理初始化极值:
- 把
minPositive初始化为Double.MAX_VALUE,确保第一个正数一定比它小,能正确更新最小值 - 把
maxPositive初始化为Double.MIN_VALUE,确保第一个正数一定比它大,能正确更新最大值
- 把
- 统计正数数量:用
positiveCount记录有效正数的个数,最后根据数量判断是输出平均值还是0 - 类名修正:题目要求文件名为
PositiveMinMaxAvg.java,因此类名必须改为PositiveMinMaxAvg,否则编译会报错
测试验证
- 输入参数
-1.5 2.5 3.5 5:过滤掉-1.5,统计到3个正数,输出(2.5+5)/2=3.75 - 输入参数
-3 -0.5 0:正数数量为0,输出0 - 输入参数
4.2:正数数量为1,输出0 - 输入参数
1.1 2.2:输出(1.1+2.2)/2=1.65
内容的提问来源于stack exchange,提问作者Taiyo Hirano
相关产品推荐
相关产品推荐

