nelson94 2017-06-10 07:51 采纳率: 100%
浏览 1019
已采纳

java循环打印三角形基础题,麻烦帮我看看我的代码有什么问题,为什么跑不了

图片说明package book;
import java.util.Scanner;
public class Test5_19 {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner in = new Scanner(System.in);
    System.out.println("enter the number of line");
    int numberOfLine = in.nextInt();

    for(int rows=1;rows<=numberOfLine;rows++){
        for(int space=numberOfLine-rows;space>=1;space++){
            System.out.print("  ");
        }
        for(int i=0;i<=numberOfLine-1;i++){
            int a = (int)(Math.pow(2, i));
            System.out.print(a+"  ");
        }
        for(int j=numberOfLine-1;j>=0;j--){
            int b = (int)(Math.pow(2, j));
            System.out.print(b+"  ");
        }
        System.out.println();
    }

}

}

  • 写回答

4条回答 默认 最新

  • 战在春秋 2017-06-10 16:54
    关注
     for(int space=numberOfLine-rows;space>=1;space++){ //初值为8,退出条件为小于1,但space一直在++,所以死循环
    

    修改后的代码如下:

    import java.util.Scanner;
    
    public class Test5_19 {
    
        public static void main(String[] args) {
    
            Scanner in = new Scanner(System.in);
            System.out.println("enter the number of line");
            int numberOfLine = in.nextInt();
    
            for (int row = 0; row < numberOfLine; row++) {
    
                for (int space = 0; space < (numberOfLine - row - 1); space++)
                    System.out.print("     ");
    
    
                for (int column = 0; column <= row; column++)
                    print_val((int) Math.pow(2, column));
    
    
                for (int column = row - 1; column >= 0; column--)
                    print_val((int) Math.pow(2, column));
    
    
                System.out.println();
            }
    
        }
    
        static void print_val(int n1) {  //不同位数打印不同空格
            if (n1 > 0 && n1 < 10)
    
                System.out.print("    ");
            else if (n1 > 9 && n1 < 100)
    
                System.out.print("   ");
            else
                // Print 2 spaces for other values
                System.out.print("  ");
    
    
            System.out.print(n1);
    
        }
    }
    

    考虑了输出格式,时间关系,没有加太多注释,您可以上机测试一下。

    用心回答每个问题,如果对您有帮助,请采纳答案好吗,谢谢!

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部