黑马程序员技术交流社区

标题: 新人提问怎么打印出以下图案 [打印本页]

作者: jia7604112    时间: 2015-11-5 17:29
标题: 新人提问怎么打印出以下图案
昨天学习了for循环并练习了打印倒三角形,代码如下:class Text {
        public static void main(String[] args) {
                for (int x = 1;x <= 5;x++ ) {
                        for (int y =1;y <= x ;y++ ) {
                                System.out.print("*");
                        }
                        System.out.println();
                }
        }
}

打出的形状如下:
*
**
***
****
*****
这个很简单,但是想打印正三角形形状如下怎么做?
     *
    * *
   * * *
  * * * *
* * * * *
星号之前的空格是有规律的,但是星之间的空格怎么打出来呢?求教

作者: 478883662    时间: 2015-11-5 18:51
两个for循环,一个代表行,一个代表*前面的空格。 至于*之间的空格 其实就是普通的 一个空格符而已 ,楼主你别想太复杂了
作者: 478883662    时间: 2015-11-5 18:52
478883662 发表于 2015-11-5 18:51
两个for循环,一个代表行,一个代表*前面的空格。 至于*之间的空格 其实就是普通的 一个空格符而已 ,楼主 ...

system.out.println(“* ”)//*号后面有一个空格
作者: 绝顶封寒    时间: 2015-11-5 19:34
public static void main(String[] args){
    for(int x=0;x<5;x++){
         for(int y=x;y<5;y++){
            System.out.print(" ");
        }
         for(int z=0;z<x+1;z++){
            System.out.print("* ");
        }
    }
         System.out.println();
}
作者: jia7604112    时间: 2015-11-5 20:17
478883662 发表于 2015-11-5 18:52
system.out.println(“* ”)//*号后面有一个空格

好吧,原来如此,我搞出来了,是我想多了,原来只要打印" *"就行了,谢啦
作者: jia7604112    时间: 2015-11-5 20:19
绝顶封寒 发表于 2015-11-5 19:34
public static void main(String[] args){
    for(int x=0;x

不行打印出来不对

Unnamed.png (34.73 KB, 下载次数: 129)

Unnamed.png

作者: zyh1578814923    时间: 2015-11-5 20:22
后面加个println
作者: 君子不_SBjXl    时间: 2015-11-5 20:22
package com.itheima;
//用控制台程序倒着输出九九乘法表;
public class test5
{
        public static void main(String args[])
        {
                int i,j,k;
                //倒序输出九九乘法表
                for(i=9;i>=1;i--)
                {
                        for(j=1;j<=i;j++)
                        {
                                k=i*j;
                                System.out.print(j+"*"+i+"="+k);
                                System.out.print(" ");
                        }
                        System.out.println();
                }
        }
}
作者: 君子不_SBjXl    时间: 2015-11-5 20:24
package com.itheima;
//用控制台程序倒着输出九九乘法表;
public class test5
{
    public static void main(String args[])
    {
        int i,j,k;
        //倒序输出九九乘法表
        for(i=9;i>=1;i--)
        {
            for(j=1;j<=i;j++)
            {
                k=i*j;
                System.out.print(j+"*"+i+"="+k);
                System.out.print(" ");
            }
            System.out.println();
        }
    }
}

作者: 478883662    时间: 2015-11-5 21:43
jia7604112 发表于 2015-11-5 20:19
不行打印出来不对

这个以前写过,好好检查检查把。现在从你的结果来看是没有换行,其他的基本达到了。加油。
作者: 大自然的搬运工    时间: 2015-11-5 21:51
加油,多练练就行了
作者: 绝顶封寒    时间: 2015-11-5 22:00
jia7604112 发表于 2015-11-5 20:19
不行打印出来不对

public static void main(String[] args){
    for(int x=0;x<5;x++){
         for(int y=x;y<5;y++){
            System.out.print(" ");
        }
         for(int z=0;z<x+1;z++){
            System.out.print("* ");
        }
      System.out.println();
    }
      
}

写得太急了。最后一行代码移动一下就OK了
作者: 铁苯锌    时间: 2015-11-5 22:40
这个应该可以打出来的
作者: 杜佳林    时间: 2015-11-5 22:47
之前做过
   *   
  ***  
*****
*******

public class Demo {
        public static void main(String[] args) {
                int n = 4;
                for (int i = 0; i < n; i++) {
                        for (int j = 0; j < (2 * n - 1); j++) {
                                if (j >= n - i - 1 && j <= n + i - 1) {
                                        System.out.print("*");
                                } else {
                                        System.out.print(" ");
                                }
                        }
                        System.out.println();
                }
        }
}

是否有点帮助不确定



作者: 478883662    时间: 2015-11-5 23:21
for (int i=1;i<=5 ;i++ )
                {
                        for(int m=0;m<5-i;m++)
                        {
                                System.out.print(" ");
                        }
                        for(int n=0;n<i;n++){
                                System.out.print("* ");
                        }
                       
                        System.out.println("");
                       
                       
                }
我也回顾了下,最终还是写出来了。不知道楼主写出来了否
作者: dongran    时间: 2015-11-7 21:32
我感觉我上完基础班都不会这个玩意儿.....
作者: wqd123    时间: 2015-11-7 22:29
6666666666666
作者: sshh11    时间: 2015-11-7 22:40
“*” 后面加个空格就好了  这是我的看法
作者: 活到老,学到老    时间: 2015-11-7 22:40
需要两个for循环的潜逃才能打出来,一个打不出来的
作者: 姬巧巧    时间: 2015-11-7 23:39

作者: jia7604112    时间: 2015-11-8 15:24
杜佳林 发表于 2015-11-5 22:47
之前做过
   *   
  ***  

我已经做出来来了不过还是谢谢拉
作者: jia7604112    时间: 2015-11-8 15:26
478883662 发表于 2015-11-5 23:21
for (int i=1;i

嗯,已经出来了谢啦
作者: 刘旭波    时间: 2015-11-8 17:35
给力,学习了!




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