黑马程序员技术交流社区

标题: 关于用for循环输出菱形的问题 [打印本页]

作者: 熊鑫    时间: 2013-4-17 11:31
标题: 关于用for循环输出菱形的问题
如题,我想输出
      *
    ***
  *****
*******
  *****
    ***
      *
三角形的会输出, 这个菱形怎么写代码。

作者: wlt    时间: 2013-4-17 12:07
我自己写的  仅供参考

public class Demo11
{
        public static void main(String [] args)
        {
                int H =7,W=7;//高和宽必须是相同的奇数
                for(int i =0;i<(H+1)/2;i++)
                {
                        for(int j =0;j<W/2-i;j++)
                        {
                                System.out.print(" ");
                        }
                        for(int k=1;k<(i+1)*2;k++)
                        {
                            System.out.print("*");
                        }
                        System.out.println();
                }

                for(int i=1;i<=H/2;i++)
                {
                        for(int j=1;j<=i;j++)
                        {
                                System.out.print(" ");
                        }
                        for(int k=1;k<=W-2*i;k++)
                        {
                                System.out.print("*");
                        }
                        System.out.println();
                }

        }
}
作者: 陈培茹    时间: 2013-4-17 12:47
  1.   static void Main(string[] args)
  2.         {//输出菱形
  3.             for (int i = 1; i < 5; i++)
  4.             {
  5.                 for (int j = 1; j <= 5 - i; j++)
  6.                     Console.Write(" ");
  7.                 for (int k = 1; k <= i * 2 - 1; k++)
  8.                     Console.Write("*");
  9.                 Console.WriteLine("");
  10.             }
  11.             for (int i = 1; i <= 3; i++)
  12.             {
  13.                 for (int j = 0; j <= i; j++)
  14.                     Console.Write(" ");
  15.                 for (int k = 1; k <= 7 - 2 * i; k++)
  16.                     Console.Write("*");
  17.                 Console.WriteLine("");
  18.             }
  19.             Console.ReadKey();
复制代码

作者: 张林杰    时间: 2013-4-17 15:02
本帖最后由 张林杰 于 2013-4-18 11:55 编辑

输入菱形的层数n(即高度),可输出对应的菱形,可能变量太多,不好理解
  1. class Program
  2.     {
  3.         static int i, j, k = 0;
  4.         static int n=7;
  5.         static void Main(string[] args)
  6.         {
  7.             Console.WriteLine("请输入菱形的层数:");
  8.             n = Convert.ToInt32(Console.ReadLine());
  9.             for (i = 0; i < n / 2 + 1; i++)//一次循环绘制一行
  10.             {
  11.                 Draw();
  12.             }
  13.             for (i = (n - 3) / 2; i >= 0; i--)//改变循环条件,绘制下半部分,i = (n - 3) / 2将上半部分与下半部分进行对应
  14.             {
  15.                 Draw();
  16.             }
  17.             Console.ReadKey();
  18.         }

  19.         public static void Draw() //绘制一行
  20.         {
  21.             for (j = 0; j < n / 2 - i; j++)//绘制*前面的空格
  22.             {
  23.                 Console.Write(" ");
  24.             }
  25.             for (k = 0; k < 2 * i + 1; k++)//绘制*
  26.             {
  27.                 Console.Write('*');
  28.             }
  29.             Console.WriteLine();//每绘制一行后进行换行
  30.         }
  31.     }
复制代码

作者: yinbolove576    时间: 2013-4-17 15:19
  1. class Test00
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 //正三角形
  6.                 for(int x=0;x<4; x++)
  7.                 {
  8.                         for(int y=x+1; y<4; y++)
  9.                         {
  10.                                 System.out.print(" ");
  11.                         }
  12.                        
  13.                         for(int z=0;z<=x*2; z++)
  14.                         {
  15.                                 System.out.print("*");
  16.                         }
  17.                         System.out.println();
  18.                 }
  19.                 //倒三角形
  20.                 for(int x =1;x<=3; x++)
  21.                 {
  22.                         for(int y=1; y<=x; y++)
  23.                         {
  24.                                 System.out.print(" ");
  25.                         }
  26.                         for(int z=1;z<=7-x*2; z++)
  27.                         {
  28.                                 System.out.print("*");
  29.                         }
  30.                         System.out.println();
  31.                 }
  32.         }
  33. }
复制代码





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