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 个回复

正序浏览
弄出来了,不过你这代码丢了不少[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();
                    }
                                    
            }        
    }
}
回复 使用道具 举报
66666666666666
回复 使用道具 举报
thanks for sharing so important infotmation!
回复 使用道具 举报
一下子没有分析出菱形!
回复 使用道具 举报
birdy 中级黑马 2015-12-20 22:14:29
8#
好难看懂啊......
回复 使用道具 举报
666666666666666666
回复 使用道具 举报
崇拜加学习
回复 使用道具 举报
还可以这么玩   崇拜啊..
回复 使用道具 举报
崇拜得很,羡慕
回复 使用道具 举报
66666666666666666666666
回复 使用道具 举报
66哒 逻辑很清晰
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马