讲师中心 微信公众号
AI工具推荐 视频效率加速

Java中实现动态输入数据的统计计算:求最大值与平均值

落伟同学_4881

落伟同学_4881

发布时间:2026-02-13 23:30:10

|

479人浏览过

|

来源于php中文网

原创

Java中实现动态输入数据的统计计算:求最大值与平均值

本文介绍如何用java编写程序,处理任意数量的非负整数输入,实时计算并输出最大值与保留两位小数的平均值;关键在于正确处理输入终止逻辑、避免整数除法截断,并使用浮点运算保障精度。

本文介绍如何用java编写程序,处理任意数量的非负整数输入,实时计算并输出最大值与保留两位小数的平均值;关键在于正确处理输入终止逻辑、避免整数除法截断,并使用浮点运算保障精度。

在实际编程练习(如高校Lab作业或在线评测系统)中,常需处理“可变长度输入”场景:用户连续输入若干非负整数,以首个负数作为输入结束标志,该负数不参与统计。本题要求输出两个结果——所有有效输入中的最大值和平均值(保留两位小数)。

核心问题解析

原代码存在三个关键缺陷:

  1. 数据类型不匹配:avg 声明为 int,但 System.out.printf("%.2f\n", avg) 要求传入 float 或 double 类型,否则将导致编译错误或运行时异常(如 IllegalFormatConversionException);
  2. 整数除法截断:total / (count - 1) 是整数除法,即使 total=38、count-1=4,结果也为 9(而非 9.5),丢失小数部分;
  3. 初始逻辑偏差:循环体中先执行 total += num 和 count++,再读取新 num,导致第一个输入被错误累加两次(初始 num = 0 被计入 total 和 count)。

正确实现方案

以下为修正后的完整代码,已通过典型测试用例验证(如输入 15 20 0 3 -1 → 输出 20 9.50):

Java注释规范Skills
Java注释规范Skills

当用户要求为 Java 代码添加注释、修改注释、审查注释、整理注释格式,或要求按照代码注释规范处理 Java 文件时,使用本技能。本技能用于统一生成和维护 Java 类注释模板、按 Git 对比 release 判断版本号、补充每行代码上方中文块注释、调整注释空行规则,并保持 Java 文件 UTF-8 无 BOM 编码。典型触发场景包括:补充类注释、更新 @version、检查 @author 来源、整理行尾注释、把注释放到代码上一行、检查注释是否符合规范、构建前检查 Java 注释风格。

下载
import java.util.Scanner;

public class LabProgram {
    public static void main(String[] args) {
        Scanner scnr = new Scanner(System.in);

        int num = scnr.nextInt(); // 首次读取,避免初始0干扰
        if (num < 0) {
            // 题目保证至少有一个非负数,此分支理论上不触发,但增强鲁棒性
            System.out.println("No valid input.");
            return;
        }

        int max = num;
        int total = num;
        int count = 1;

        while (true) {
            num = scnr.nextInt();
            if (num < 0) {
                break; // 负数终止输入,不参与统计
            }
            if (num > max) {
                max = num;
            }
            total += num;
            count++;
        }

        // 关键:使用 float 或 double 进行除法,防止整数截断
        float average = (float) total / count;

        // 按题目要求格式化输出:最大值 + 空格 + 平均值(两位小数)
        System.out.print(max + " ");
        System.out.printf("%.2f\n", average);
    }
}

关键注意事项

  • ✅ 输入顺序必须严格遵循题意:首次输入即为有效数据,不可预设 num = 0 后再读取;
  • ✅ max 初始化为首个有效输入值,而非 0,否则当所有输入均为 0 时(如 0 0 0 -1),max 仍为 0 是正确的;但若输入含负数前导(如题目不允许),初始化方式更安全;
  • ✅ average 必须声明为 float 或 double,且除法操作中至少一个操作数需显式转换为浮点类型(如 (float)total / count),否则 Java 默认执行整数除法;
  • ⚠️ printf 中的 %.2f 自动四舍五入,符合题目“两位小数”要求,无需手动处理精度;
  • ? 若需更高精度(如金融计算),建议改用 double 和 BigDecimal,但本题 float 已完全满足。

该实现简洁、健壮、符合题目约束,是处理动态输入统计类问题的典型范式——把握输入边界、选择合适数据类型、精准控制运算精度,即可高效达成目标。

立即学习“Java免费学习笔记(深入)”;

热门AI工具

更多
Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

相关专题

更多
数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3131

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

554

2025.10.31

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

542

2026.02.12

css中float用法
css中float用法

css中float属性允许元素脱离文档流并沿其父元素边缘排列,用于创建并排列、对齐文本图像、浮动菜单边栏和重叠元素。想了解更多float的相关内容,可以阅读本专题下面的文章。

6887

2024.04.28

C++中int、float和double的区别
C++中int、float和double的区别

本专题整合了c++中int和double的区别,阅读专题下面的文章了解更多详细内容。

804

2025.10.23

counta和count的区别
counta和count的区别

Count函数用于计算指定范围内数字的个数,而CountA函数用于计算指定范围内非空单元格的个数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3388

2023.11.20

printf用法大全
printf用法大全

php中文网为大家提供printf用法大全,以及其他printf函数的相关文章、相关下载资源以及各种相关课程,供大家免费下载体验。

828

2023.06.20

fprintf和printf的区别
fprintf和printf的区别

fprintf和printf的区别在于输出的目标不同,printf输出到标准输出流,而fprintf输出到指定的文件流。根据需要选择合适的函数来进行输出操作。更多关于fprintf和printf的相关文章详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1029

2023.11.28

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

100

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
dev.java 官方:Learn Java
dev.java 官方:Learn Java

共0课时 | 0人学习

Java JDBC数据库连接官方教程
Java JDBC数据库连接官方教程

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn