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

C与Java图案编程条件相同却输出不一致,求修复方案

修复C与Java图案程序输出不一致的问题

嘿,我一眼就瞅见你Java代码里的问题啦!咱们来快速把它搞定:

问题根源对比

你的C代码逻辑完全没问题:内层循环里,不符合条件的位置输出空格,每一行图案绘制完成后,用printf("\n")切换到下一行。但Java代码里有两处关键小错误:

  • 你在else分支用了System.out.println(),这会直接输出换行符而不是空格——本该是空格的位置变成了换行,直接把整个图案的结构打乱了
  • 外层循环结束后没加换行操作,缺少了C代码里printf("\n")对应的逻辑,不过第一个错误已经让输出完全乱套了

修复后的Java代码

把else分支改成输出空格,同时在外层循环的每轮结尾添加上换行:

public class Main {
    public static void main(String [] args) {
        int i,j;
        for(i=1;i<=5;i++) {
            for(j=1;j<=9;j++) {
                if(j<=(6-i)||j>=(4+i))
                    System.out.print("*");
                else
                    System.out.print(" "); // 替换成输出空格,而非换行
            }
            System.out.println(); // 每行图案结束后换行,对应C的printf("\n")
        }
    }
}

修复后的输出

现在Java代码的输出就会和C语言完全一致了:

*********
 **** ****
  *** ***
   ** **
    * *

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:27:32