Java打印1到10及其立方根、平方根、平方、立方值的表格问题求助
问题原因及修正代码
原有代码错误点
- 循环起始值不符合需求:需求是输出1-10的数值,原代码i从0开始遍历
- printf用法错误:格式串仅定义了1个整型占位符
%6d,实际每次调用只会输出第一个参数i的值,后续拼接的字符串参数不会被识别 - 冗余的内层循环:不需要通过j循环输出每一列,直接在printf中定义所有列的格式即可
- 格式符不匹配:立方根、平方根为浮点型数值,不能使用整型格式符
%d输出
修正后代码
public class NumberTable { public static void main(String[] args) { // 输出表头 System.out.printf("%6s%10s%10s%6s%6s\n", "数字", "立方根", "平方根", "平方", "立方"); // 遍历1到10 for (int i = 1; i <= 10; i++) { double cubeRoot = Math.cbrt(i); double sqrt = Math.sqrt(i); int square = i * i; int cube = i * i * i; // 按格式输出行,浮点型保留2位小数 System.out.printf("%6d%10.2f%10.2f%6d%6d\n", i, cubeRoot, sqrt, square, cube); } } }
输出效果说明
运行上述代码后会输出对齐的表格,浮点型数值默认保留2位小数,可根据需求调整格式串中.2f的数字修改小数保留位数。
内容的提问来源于stack exchange,提问作者swu
相关产品推荐
相关产品推荐

