黑马程序员技术交流社区

标题: 打印菱形出问题,求助! [打印本页]

作者: 龚建锋    时间: 2012-7-22 23:48
标题: 打印菱形出问题,求助!
public static void main(String[] args)  {
/*
打印金字塔
*/
  int m = 4;
  for (int i = 0; i < m; i++) {
   // 空格输出
   for (int j = 0; j < m - i - 1; j++) {
    System.out.print(" ");
   }
   // 星号输出
   
   for (int k = 0; k < i * 2 + 1; k++) {
    System.out.print("*");
   }
   System.out.println();
/*
想找规律打印一个倒的金字塔,从而与上面的正的金字塔形成一个菱形,但打印结果如图1:
*/
   for (int a = m - 1; a >= 1; a--) {
       for (int j = 1; j <= m - a; j++) {
        System.out.print(" ");
       }
       for (int k = 2 * a - 1; k > 0; k--) {
        System.out.print("*");
       }
       System.out.println();
  }
}
}
//求帮助求解决??

图1.jpg (17.35 KB, 下载次数: 167)

图1.jpg

作者: 胡文凡    时间: 2012-7-23 03:15
问题找到了,就是for()循环的范围弄错了,最上上面的那个for本来应该中间结束的,结果到最后才结束。改下大括号就可以了:
package cn.itcast.day1;

public class demo {
        public static void main(String[] args)  {
                /*
                打印金字塔
                */
                  int m = 4;
                  for (int i = 0; i < m; i++) {                //注意此处的for管到了最后,有四次,所以会出现4个类菱形的图案
                   // 空格输出
                   for (int j = 0; j < m - i - 1; j++) {
                    System.out.print(" ");
                   }
                   // 星号输出
                  
                   for (int k = 0; k < i * 2 + 1; k++) {
                    System.out.print("*");
                   }
                   System.out.println();
                 }//注意此处的大括号,写到下面去了
                /*
                想找规律打印一个倒的金字塔,从而与上面的正的金字塔形成一个菱形,但打印结果如图1:// 最上面一个for管的太远了,到这里都没有结束
                */
                   for (int a = m - 1; a >= 1; a--) {
                       for (int j = 1; j <= m - a; j++) {
                        System.out.print(" ");
                       }
                       for (int k = 2 * a - 1; k > 0; k--) {
                        System.out.print("*");
                       }
                       System.out.println();
                  }
                //}这里的括号要移到上面
                }
}
http://bbs.itheima.com/forum.php?mod=attachment&aid=NDg5NnxiNDk5MzM0NDZlMzQyNTI0N2Q3ZmVlNjVjYTY2M2VmOHwxNzI3NDg4NjY1&request=yes&_f=.jpg

1431249r670srrxxryzeyu.jpg (313.35 KB, 下载次数: 194)

1431249r670srrxxryzeyu.jpg

作者: 胡文凡    时间: 2012-7-23 03:17
嘎,我错了,点错了,上传错图片了。。
http://bbs.itheima.com/forum.php?mod=attachment&aid=NDg5N3w4M2M5MTRjNjg5NmRmYzQ0ZGNiZjdlNDViOGI4M2IxOHwxNzI3NDg4NjY1&request=yes&_f=.png

QQ截图20120723031245.png (2.45 KB, 下载次数: 208)

right

right

作者: 刘海源    时间: 2012-7-23 07:39
public static void main(String[] args)  {
/*
打印金字塔
*/
   int m = 4;
   for (int i = 0; i < m; i++)
        {
    // 空格输出
    for (int j = i; j < m/2 +2; j++)
    {
     System.out.print(" ");
    }
    // 星号输出
   
    for (int k = 0; k < i; k++)
        {
     System.out.print("* ");
    }
    System.out.println();
        }
/*
想找规律打印一个倒的金字塔,从而与上面的正的金字塔形成一个菱形,但打印结果如图1:
*/
    for (int a = 0; a <m; a++)
                {
        for (int j = 0; j < a; j++)
                {
         System.out.print(" ");
        }
        for (int k = a; k < m; k++)
                {
         System.out.print("* ");
        }
        System.out.println();
       }

}
//for循环的括号弄错了奥,将菱形看成两个三角形不就oK了吗,完了再仔细的分析一下里边的表达式

作者: 龚建锋    时间: 2012-7-23 21:51
呵呵~~还是不细心的问题啊,谢谢各位了~~运行正常了~~




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