黑马程序员技术交流社区

标题: 想用循环语句打印个空星矩形,有人有思路吗? [打印本页]

作者: liming_heima    时间: 2015-6-24 22:07
标题: 想用循环语句打印个空星矩形,有人有思路吗?
想用循环语句打印个空星矩形,有人有思路吗?
作者: 进军黑马    时间: 2015-6-24 22:50
   思路:
作者: GiveUp    时间: 2015-6-25 00:49
上面一行,下面一行,中间的部分用嵌套循环就可以了,
作者: guiqulaixi    时间: 2015-6-25 14:45
哈哈 楼上+1
作者: liming_heima    时间: 2015-6-25 18:28
GiveUp 发表于 2015-6-25 00:49
上面一行,下面一行,中间的部分用嵌套循环就可以了,

嗯,应该是这样。
作者: wolfking0608    时间: 2016-10-8 20:37
public class 空星菱形2 {
  public static void main(String[] args) {
          Scanner sc = new Scanner(System.in);
                System.out.println("请输入数组");
                int k =sc.nextInt();
                demo5(k);//空星菱形
                System.out.println("实芯菱形");
                demo1(k);
}
  private static void demo5(int length) {
                //int length=5;
                for (int i = 1; i <length; i++) {
                        for (int j = 0; j <length-1-i; j++) {//空格数
                                System.out.print(" ");
                        }
                        for (int j = 1; j <=i*2-1; j++) {//星星数 j不能等于0,不然i*2-1等于负数
                                 if(j==1 || j==i*2-1){
                                         System.out.print("*");
                                 }else{
                                         System.out.print(" ");
                                 }
                        }
                        System.out.println();
                }
                //打印倒着的星星
                for (int i =length-2; i>0; i--) {
                        for (int j =1; length-1-i>=j; j++) {// 行数等于几空格就打印几次  2
                                System.out.print(" ");
                        }
                        for (int j = 1; j <=i*2-1; j++) {
                                /*System.out.print("*");*/
                                if(j==1 || j==i*2-1){
                                         System.out.print("*");
                                 }else{
                                         System.out.print(" ");
                                 }
                        }
                        System.out.println();
                }
        }
  private static void demo1(int length) {
                //int length=5;
                for (int i = 1; i <length; i++) {
                        for (int j = 0; j <length-1-i; j++) {//空格数
                                System.out.print(" ");
                        }
                        for (int j = 1; j <=i*2-1; j++) {//星星数 j不能等于0,不然i*2-1等于负数
                                 
                                         System.out.print("*");
                               
                        }
                        System.out.println();
                }
                //打印倒着的星星
                for (int i =length-2; i>0; i--) {
                        for (int j =1; length-1-i>=j; j++) {// 行数等于几空格就打印几次  2
                                System.out.print(" ");
                        }
                        for (int j = 1; j <=i*2-1; j++) {
                                 System.out.print("*");
                        }
                        System.out.println();
                }
        }
}

作者: wolfking0608    时间: 2016-10-8 20:58
/*空芯矩形
* 思路分析:
*  1.先打印一个实芯矩形出来
*     a.第一行行数
*     b.第二行列数
*  2.把第二行列数,如果不是一个和最后一个,其他的全部用空格替代   
* */
public class 空芯矩形 {
   public static void main(String[] args) {
         Scanner sc = new Scanner(System.in);
         System.out.println("请输入行数");
        int hang = sc.nextInt();
        System.out.println("请输入列数:");
        int high = sc.nextInt();
          for (int i = 0; i <hang/2; i++) {
                System.out.print("* ");
        }
          System.out.println("");
        for (int i = 0; i < hang-1; i++) {
                for (int j = 0; j < high-1; j++) {
                       
                        if(j==0 || j==high-2 ){
                                System.out.print("*");
                        }else{
                                System.out.print(" ");
                        }
                }
                System.out.println();

        }
        for (int i = 0; i <hang/2; i++) {
                System.out.print("*"+" ");
        }
}
}


作者: 小泥人    时间: 2016-10-8 23:07
双重for循环  然后if语句判断一下  应该可以了吧
作者: Zzh94520    时间: 2016-10-8 23:11
......................
作者: glq123    时间: 2016-10-8 23:48
wolfking0608 发表于 2016-10-8 20:58
/*空芯矩形
* 思路分析:
*  1.先打印一个实芯矩形出来

这不行啊
作者: yanghaozhang    时间: 2016-10-9 00:16
老师想的,将矩形看做在一个XY左边,X等于0和x时或Y等于0和y时输出星星,其他时候输出空格
作者: IceLoveInFire丶    时间: 2016-10-9 00:40
不太明白题意。就在上下打印一行星号 ,中间的部分打印两头的星号不就行了?
作者: zhangchangzhi    时间: 2016-10-9 09:26
我去试试~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~




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