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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 金鑫 中级黑马   /  2012-8-20 22:03  /  2547 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 金鑫 于 2012-8-20 23:11 编辑
  1. public class TuXing {

  2. public static void main(String[] args) {
  3. System.out.println("---------------左直角三角形---------------");
  4. /* *
  5.     **
  6.     ***
  7.     ****
  8.     *****
  9. * */
  10. //左直角三角形
  11. //定义一个外循环,外循环表示行数,行数是5
  12. for (int i = 0; i < 5; i++) {
  13. //定义一个内循环,内循环表示每行图形的列数,因为是5行5列,所以列数小于等于行数
  14. for (int j = 0; j <=i; j++) {
  15. System.out.print("*");
  16. }
  17. System.out.println();
  18. }

  19. System.out.println("---------------左倒直角三角形---------------");
  20. //左倒直角三角形
  21. /* *****
  22.     ****
  23.     ***
  24.     **
  25.     *
  26. * */
  27. //定义一个外循环,外循环表示行数,行数是5
  28. for (int i = 0; i <5; i++) {
  29. //定义一个内循环,内循环表示每行图形的列数
  30. //当i=0时,j=5;当i=1时,j=4...当i=5时,j=0。因此i和j的关系时:j=5-i
  31. for (int j =0; j <5-i; j++) {
  32. System.out.print("*");
  33. }
  34. System.out.println();
  35. }

  36. System.out.println("---------------右倒直角三角形---------------");
  37. //右直角三角形
  38. /* *****
  39.     ****
  40.     ***
  41.     **
  42.     *
  43. * */
  44. //定义一个外循环,外循环表示行数,行数是5
  45. for (int i = 0; i <5; i++) {
  46. //可以把图形分成2部分,第一部分打印空格
  47. //定义一个内循环,内循环表示每行图形的列数,因为是5行5列,所以列数小于等于行数
  48. for (int j = 0; j<i; j++) {
  49. System.out.print(" ");
  50. }
  51. //第二部分打印*号
  52. //当i=0时,j=5;当i=1时,j=4...当i=5时,j=0。因此i和j的关系时:j<5-i
  53. for (int j = 0; j <5-i; j++) {
  54. System.out.print("*");
  55. }
  56. System.out.println();
  57. }

  58. System.out.println("---------------右正直角三角形---------------");
  59. //右倒直角三角形
  60. /* *
  61.     **
  62.     ***
  63.     ****
  64.     *****
  65. */
  66. //定义一个外循环,外循环表示行数,行数是5
  67. for (int i = 0; i <5; i++) {
  68. //可以把图形分成2部分,第一部分打印空格
  69. //当i=0时,j=4;当i=1时,j=3...当i=4时,j=0。因此i和j的关系时:j<4-i
  70. for (int j = 0; j <4-i; j++) {
  71. System.out.print(" ");
  72. }
  73. //打印*同样是找i和j的关系,i=0时j=1,i=1时j=2...i=4时,j=5,所以i和j的关系是:j=i+1;
  74. for (int j = 0; j <(i+1); j++) {
  75. System.out.print("*");
  76. }
  77. System.out.println();
  78. }
  79. //正等腰 三角形
  80. /*     *
  81.       ***
  82.     *****
  83.   *******
  84. *********
  85. * */
  86. System.out.println("---------------正等腰 三角形---------------");
  87. //定义一个外循环,外循环表示行数,行数是5
  88. for (int i = 0; i <5; i++) {
  89. //可以把图形分成2部分,第一部分打印空格
  90. //当i=0时,j=4;当i=1时,j=3...当i=4时,j=0。因此i和j的关系时:j<4-i
  91. for (int j = 0; j <4-i; j++) {
  92. System.out.print(" ");
  93. }
  94. //第二部分打印*号
  95. //找i和j的关系,i=0时j=1,i=1时j=3,i=2时j=5...所以i和j的关系是:j=i*2-1
  96. for (int j = 0; j <i*2+1; j++) {
  97. System.out.print("*");
  98. }
  99. System.out.println();
  100. }
  101. //倒等腰三角形
  102. /* *********
  103.       *******
  104.         *****
  105.           ***
  106.            *
  107. * */
  108. System.out.println("---------------倒等腰 三角形---------------");
  109. //定义一个外循环,外循环表示行数,行数是5
  110. for (int i = 0; i < 5; i++) {
  111. //打印空格,找i和j的关系,i=j
  112. for (int j = 0; j < i; j++) {
  113. System.out.print(" ");
  114. }
  115. //打印*号,i=0时j=9,i=1时j=7...i与j的关系:j=9-2*i
  116. for (int j = 0; j <9-2*i; j++) {
  117. System.out.print("*");
  118. }
  119. System.out.println();
  120. }

  121. System.out.println("---------------菱形---------------");
  122. //打印菱形
  123. /*     *
  124.       ***
  125.     *****
  126.   *******
  127. *********
  128.   *******
  129.     *****
  130.       ***
  131.         *
  132. * */
  133. //我是把菱形拆分为两部分打印,先打印上面5行,方法与上面一样,不再详细注释
  134. for (int i = 0; i <5; i++) {
  135. for (int j = 0; j <4-i; j++) {
  136. System.out.print(" ");
  137. }
  138. for (int j = 0; j <i*2+1; j++) {
  139. System.out.print("*");
  140. }
  141. System.out.println();
  142. }
  143. //然后打印下面4行,这样合在一起就是一个完整的菱形
  144. for (int i = 1; i < 5; i++) {
  145. for (int j = 0; j <i; j++) {
  146. System.out.print(" ");
  147. }
  148. for (int j = 0; j < 9-2*i; j++) {
  149. System.out.print("*");
  150. }
  151. System.out.println();
  152. }

  153. System.out.println("-------------空心菱形---------------");
  154. for (int i = 1; i <=5; i++) {
  155. for (int k = 1; k <= 5 - i; k++) {
  156. System.out.print(" ");
  157. }
  158. for (int j = 1; j <= ((i - 1) * 2 + 1); j++) {
  159. if (i == 1) {
  160. System.out.print("*");
  161. } else {
  162. if (j == 1 || j == (i - 1) * 2 + 1) {
  163. System.out.print("*");
  164. } else {
  165. System.out.print(" ");
  166. }
  167. }
  168. }
  169. System.out.println();
  170. }
  171. for (int i = 4; i >= 1; i--) {
  172. for (int k = 1; k <= 4 - i; k++) {
  173. System.out.print(" ");
  174. }
  175. for (int j = 1; j <= ((i - 1) * 2 + 1); j++) {
  176. if (i == 1) {
  177. System.out.print("*");
  178. } else {
  179. if (j == 1 || j == (i - 1) * 2 + 1) {
  180. System.out.print("*");
  181. } else {
  182. System.out.print(" ");
  183. }
  184. }
  185. }
  186. System.out.println();
  187. }
  188. }

  189. }
复制代码
今天复习的时候,没事整理以前的笔记,发现曾经写过的一个打印图形的例子。原本没有空心菱形,是我自己接着写的,结果挂了,求指教。

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1 赞一个!

查看全部评分

7 个回复

倒序浏览
//打印一个空的菱形
public class Text5 {

        public static void main(String[] args) {
               
                for(int i = 0;i<4;i++)
                {   
                        for(int a =4 ;a>i;a--)
                        {
                                System.out.print("* ");
                        }
                        for(int j=1;j<=i;j++)
                        {       
                                System.out.print("  ");
                        }
                        for(int j=1;j<=i;j++)
                        {       
                                System.out.print("  ");
                        }
                        for(int j=4;j>i;j--)
                        {
                                System.out.print("* ");
                        }
                        System.out.println();               
                }
               
                for(int i = 0;i<4;i++)
                {
                        for(int a =0 ;a<=i;a++)
                        {
                                System.out.print("* ");
                        }
                        for(int j=3;j>i;j--)
                        {
                                System.out.print("  ");
                        }
                        for(int j=3;j>i;j--)
                        {
                                System.out.print("  ");
                        }
                        for(int j=0;j<=i;j++)
                        {
                                System.out.print("* ");
                        }
                        System.out.println();               
                }
        }
}
这是我写的 看看把
回复 使用道具 举报
我的图案是这个结果,求问哪里的代码出了问题

未命名.jpg (6.45 KB, 下载次数: 31)

未命名.jpg
回复 使用道具 举报
金鑫 发表于 2012-8-20 22:15
我的图案是这个结果,求问哪里的代码出了问题

代码

回复 使用道具 举报
杨彪 发表于 2012-8-20 22:31
代码

代码在上面,我贴出来的最后一部分
回复 使用道具 举报
                System.out.println("-------------空心菱形---------------");
                for (int i = 1; i <= 5; i++) {
                        for (int k = 1; k <= 5 - i; k++) {
                                System.out.print(" ");
                        }
                        for (int j = 1; j <= ((i - 1) * 2 + 1); j++) {
                                if (i == 1) {
                                        System.out.print("*");
                                } else {
                                        if (j == 1 || j == (i - 1) * 2 + 1) {
                                                System.out.print("*");
                                        } else {
                                                System.out.print(" ");
                                        }
                                }
                        }
                        System.out.println();
                }
                for (int i = 5; i >= 1; i--) {
                        for (int k = 1; k <= 5 - i; k++) {
                                System.out.print(" ");
                        }
                        for (int j = 1; j <= ((i - 1) * 2 + 1); j++) {
                                if (i == 1) {
                                        System.out.print("*");
                                } else {
                                        if (j == 1 || j == (i - 1) * 2 + 1) {
                                                System.out.print("*");
                                        } else {
                                                System.out.print(" ");
                                        }
                                }
                        }
                        System.out.println();
                }
        }
}

行了  你下面应该改成 5

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1 赞一个!

查看全部评分

回复 使用道具 举报
金鑫 中级黑马 2012-8-20 23:10:07
7#
谢谢,搞定了
回复 使用道具 举报
杨彪 中级黑马 2012-8-20 23:12:36
8#
import java.util.Scanner;
public class Text9 {
        public static void main(String[] args) {

                Scanner sc = new Scanner(System.in);
                System.out.println("请输入个数:");
                int x=sc.nextInt();
                System.out.println("请输入打印的符号:");
                String y= sc.next();
                Text9 t1 = new Text9();
                t1.show(x,y);
        }
        public void show(int x,String y)
        {
                System.out.println("-------------空心菱形---------------");
                //上
                for (int i = 1; i <= x; i++) {
                        for (int k = 1; k <= x - i; k++) {
                                System.out.print(" ");
                        }
                        for (int j = 1; j <= ((i - 1) * 2 + 1); j++) {
                                if (i == 1) {
                                        System.out.print(y);
                                } else {
                                        if (j == 1 || j == (i - 1) * 2 + 1) {
                                                System.out.print(y);
                                        } else {
                                                System.out.print(" ");
                                        }
                                }
                        }
                        System.out.println();
                }
                //下
                for (int i = x; i >= 1; i--) {
                        for (int k = 1; k <= x - i; k++) {
                                System.out.print(" ");
                        }
                        for (int j = 1; j <= ((i - 1) * 2 + 1); j++) {
                                if (i == 1) {
                                        System.out.print(y);
                                } else {
                                        if (j == 1 || j == (i - 1) * 2 + 1) {
                                                System.out.print(y);
                                        } else {
                                                System.out.print(" ");
                                        }
                                }
                        }
                        System.out.println();
                }
        }
}
你也可以这样写  在控制台输入的 这样你就可以随意打了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马