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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 谢宝盛 中级黑马   /  2012-11-28 18:31  /  1310 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

                  *
    * *
   *   *
  *     *
 *       *
*********** 像这样的应该怎么做呢,光输出空格 *是能做   有没有更简单的呢,

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

4 个回复

倒序浏览
class Test8
{
        public static void main(String[] args)
        {               
/*
-----*
----*-*
---*---*
--*-----*
-*-------*
***********
*/
                for (int i=1;i<6 ;i++ )
                {
                        for (int j =i;j<6 ;j++ )
                        {
                                System.out.print("-");
                        }
                        /*打印
                        -----
                        ----
                        ---
                        --
                        -
                        */
                        System.out.print("*");//打印*

                        for (int s=0;s<2*i-3 ;s++ )
                        {
                                System.out.print("-");
                        }//打印两个星中间的—
                        if(2*i-3>0)
                                System.out.print("*");
                        System.out.println();
                }
                for (int t=0;t< 11;t++ )
                {
                        System.out.print("*");//由于第一行只有一个*,所以要加条件判断下
                }//最后一行比较特殊,单独打印
        }
}
把-换成空格就是你要的输出图形了

思路就是将整个图形左边空白和中间空白用循环嵌套实现,最后一行单独输出,要是一定要加入循环也是可以的,加个条件判断下就行了

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 崔维友 于 2012-11-28 19:12 编辑

我也凑凑热闹吧,楼上已经讲的很直白了:
可以分区打印,左边第一个星号之前的为一部分,从第一个星号开始再一部分。
  1. class Oh
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 //控制行数
  6.                 for (int i=1; i<=10; i++)
  7.                 {
  8.                         //控制第一部分的空格数
  9.                         for (int j=1; j<=11-i; j++)
  10.                         {
  11.                                 System.out.print(" ");
  12.                         }
  13.                         //控制三角形部分
  14.                         for (int k=1; k<=2*i-1; k++)
  15.                         {
  16.                                 //边
  17.                                 if (k==1 || k==2*i-1)
  18.                                 {
  19.                                         System.out.print("*");
  20.                                 }
  21.                                 else
  22.                                 {
  23.                                         System.out.print(" ");
  24.                                 }
  25.                         }
  26.                         System.out.println();
  27.                 }
  28.                 //最底一行
  29.                 for (int i=0; i<21; i++)
  30.                 {
  31.                         System.out.print("*");
  32.                 }
  33.         }
  34. }
复制代码

不才博客中有几个例子可参考:http://blog.csdn.net/vigiles/article/details/8182801
------------------------------------------------------------------------------------------------------
新手入门,请多指正!


评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 很给力!

查看全部评分

回复 使用道具 举报
-----
----
---
--
-
把它改成空格在打印就可以了

你把空格先删类变成下面这样就好思考了

**
**
**
**
***********

点评

要有的放矢哦 。  发表于 2012-11-29 13:10
回复 使用道具 举报
何伟 发表于 2012-11-29 13:00
-----
----
---

搞错了
理解成这个图形了
     *
    * *
   * * *
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马