A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

import java.util.Scanner;

class Demo_lx {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);                                
        System.out.println("输入一个奇数打出由*组成的空心菱形");
        int num = sc.nextInt();                                                //用户输入一个奇数
        LingXing l = new LingXing();                                        //创建一个打印空心菱形的对象
        l.cun(num);                                                            //调用打印方法

    }
}

class LingXing {                                                            //打印空心菱形的类
    public void cun(int n) {                                                //判断输入的是奇数吗?因为偶数是没办法打印出的
        if (n % 2 != 0) {                                                    //将需要打印的*存入数组c中
            char[][] c = new char[n][n];

            for (int i = 0; i < n; i++) {         
                if (i == n / 2) {                                            //第n/2行的*存入方法
                    c[i][i - (n / 2)] = '*';
                    c[i][i + (n / 2)] = '*';
                } else if (i < (n / 2)) {                                    //n/2行之前的*存入方法
                    for (int j = 0; j < n; j++) {
                        if (j == (n / 2) - i || j == (n / 2) + i) {
                            c[i][j] = '*';
                        }
                    }
                } else {                                                    //其他行*的存入方法
                    for (int j = 0; j < n; j++) {
                        if (j == i - (n / 2) || j == n - i + (n / 2) - 1) {
                            c[i][j] = '*';
                        }
                    }
                }

            }

            for (int i = 0; i < n; i++) {                                    //遍历char 数组c将存储的*打印出来
                for (int j = 0; j < n; j++) {
                    System.out.print(c[i][j]);
                }
                System.out.println();
            }
        } else {
            System.out.println("请输入奇数");
        }
    }

}

无标题.png (111.32 KB, 下载次数: 20)

无标题.png

3 个回复

倒序浏览
虽然代码很乱,不过确实实现了功能
回复 使用道具 举报
挺好的啊  。。。。。
回复 使用道具 举报
恭喜你,终于成功了..
再加点挑战:
不过,能打印横着的菱形吗?
还有可以加上对角线吗?

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马