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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 tiandaochouqin 于 2015-12-19 23:32 编辑

看上去这么难,还不如直接画一个??
新手拙作.请有更好思路的指点留言..import java.util.Scanner;
class LingXing {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                while (true) {
                        System.out.println("请输入要打印的边长:");
                        int u= sc.nextInt();
                        if (u<=1)  {
                                System.out.println("输入大于1的数值");
                                return;
                        }
                        //定义数组;
                        char[][] a = new char;
                        //给对角线上的元素赋值*
                        for (int i=1; i<u; i++) {
                                for (int j=1; j<u; j++) {
                                        if (i==j||(i+j)==(u-1)) {
                                                a[j] = '*';
                                                }
                                        }
                                }
                        //给四条边赋值*.
                        for (int i=0; i<u; i++) {
                                a[0] =a[0]=a[u-1]=a[u-1]= '*';
                                        }
                                //打印数组
                        for (int i=0; i<a.length; i++) {
                                for (int n=0; n<u-i; n++) {
                                        System.out.print(" ");
                                        }
                                for (int j=0; j<a.length; j++) {
                                                
                                        System.out.print(a[j]+" ");
                                        }
                                System.out.println();
                        }
                                       
                }        
        }
}

有图有真相:


11 个回复

倒序浏览
66哒 逻辑很清晰
回复 使用道具 举报
66666666666666666666666
回复 使用道具 举报
崇拜得很,羡慕
回复 使用道具 举报
还可以这么玩   崇拜啊..
回复 使用道具 举报
崇拜加学习
回复 使用道具 举报
666666666666666666
回复 使用道具 举报
birdy 中级黑马 2015-12-20 22:14:29
8#
好难看懂啊......
回复 使用道具 举报
一下子没有分析出菱形!
回复 使用道具 举报
thanks for sharing so important infotmation!
回复 使用道具 举报
66666666666666
回复 使用道具 举报
弄出来了,不过你这代码丢了不少[i]呀
import java.util.Scanner;

class LingXing {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            while (true) {
                    System.out.println("请输入要打印的边长:");
                    int u= sc.nextInt();
                    if (u<=1)  {
                            System.out.println("输入大于1的数值");
                            return;
                    }
                    //定义数组;
                    char[][] a = new char[u][u];
                    //给对角线上的元素赋值*
                    for (int i=1; i<u; i++) {
                            for (int j=1; j<u; j++) {
                                    if (i==j||(i+j)==(u-1)) {
                                            a[i][j] = '*';
                                            }
                                    }
                            }
                    //给四条边赋值*.
                    for (int i=0; i<u; i++) {
                            a[0][i] =a[i][0]=a[u-1][i]=a[i][u-1]= '*';
                                    }
                            //打印数组
                    for (int i=0; i<a.length; i++) {
                            for (int n=0; n<u-i; n++) {
                                    System.out.print(" ");
                                    }
                            for (int j=0; j<a.length; j++) {
                                            
                                    System.out.print(a[i][j]+" ");
                                    }
                            System.out.println();
                    }
                                    
            }        
    }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马