黑马程序员技术交流社区

标题: 一个打印空心菱形的方法,有图 [打印本页]

作者: 我有一个邮箱了    时间: 2015-12-21 22:52
标题: 一个打印空心菱形的方法,有图
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

作者: 我有一个邮箱了    时间: 2015-12-21 22:53
虽然代码很乱,不过确实实现了功能
作者: 南无ice    时间: 2015-12-21 23:08
挺好的啊  。。。。。
作者: tiandaochouqin    时间: 2015-12-22 00:41
恭喜你,终于成功了..
再加点挑战:
不过,能打印横着的菱形吗?
还有可以加上对角线吗?






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2