You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java如何格式化控制台输出随机数并计算所有随机数的平均值

问题解决方案
  • 现有代码核心问题:你定义的randoms是循环内部的局部变量,每次循环都会重新创建、旧值直接被覆盖,既没有累计总和,也没有留存生成的数值,所以无法完成后续的格式化输出和平均值计算。

1. 实现逻辑说明

  • 新增sum全局累计变量,每次循环把生成的随机数累加到该变量,用来后续计算平均值
  • 输出时通过i % 10 == 0的判断控制换行,即可实现每行输出10个数字的效果
  • 注意你当前使用的rand.nextInt(101)生成的是0-100范围的数值,如果需要1-100的范围,需要改成rand.nextInt(100) + 1

2. 完整可运行代码

import java.util.Random;

public class RandomCalc {
    public static void main(String[] args) {
        Random rand = new Random();
        int n = 100;
        int sum = 0; // 累计所有随机数总和
        for (int i = 1; i <= n; i++) {
            // 生成1-100的随机数,如需0-100范围改回rand.nextInt(101)即可
            int randomNum = rand.nextInt(100) + 1;
            sum += randomNum;
            // 格式化输出,每个数字占4位宽度左对齐,保证排版整齐
            System.out.printf("%-4d", randomNum);
            // 每输出10个数字触发换行
            if (i % 10 == 0) {
                System.out.println();
            }
        }
        // 计算平均值,转double避免整数除法丢失精度
        double average = sum * 1.0 / n;
        System.out.printf("生成的100个随机数平均值为:%.2f", average);
    }
}

3. 关键语法说明

  • 格式化输出控制:printf的%-4d参数代表输出int类型数值,占4个字符宽度,-代表左对齐,避免数字位数不同导致排版错位
  • 平均值精度控制:求和后先乘以1.0转成double类型再做除法,避免两个int相除只保留整数部分的问题,%.2f可以控制平均值保留两位小数输出

内容的提问来源于stack exchange,提问作者steven

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 19:45:05