1  public class Var_02 {
2 public static void main(String args[]){
3 for(int i=1;i<=7;i+=2){
4 for(int kong=7;kong>i-1;kong--){
5 System.out.print(" ");
6 }
7 for(int xing=1;xing<=i;xing++){
8 System.out.print("* ");
9 }
10        System.out.println();
11 }
12 for(int j=1;j<=5;j+=2){
13 for(int kong1=1;kong1<j+3;kong1++){
14 System.out.print(" ");
15 }
16 for(int xing1=5;xing1>=j;xing1--){
17 System.out.print("* ");
18 }
19 System.out.println();
20 }
21     }
22  }
上边怎么打印出的菱形啊 没看懂 好比1-11行打印上半个菱形,先打印了7个空格,然后带你一个* 那个*怎么能保证放在中间位置的?另外,如果把8和17引号内改成只有一个*,而不是*和空格,则只打印左侧菱形, 搞不懂啊搞不懂...

解决方案 »

  1.   

    我的代码:
    public class printDiamond {
    public static void main(String[] args){
    //利用while循环判断用户输入的是否是奇数
    Scanner input=new Scanner(System.in);
    System.out.print("请输入菱形行数: ");
    int rows=input.nextInt();
    while(rows%2==0)
    {
    System.out.println("请输入奇数: ");
    rows=input.nextInt();
    }
    //分步打印。先打印菱形的上半部
    int n=(rows+1)/2;
    for(int i=1;i<=n;i++)
    {
    for(int j=1;j<=n-i;j++)
    System.out.print(" ");
    for(int k=1;k<=2*i-1;k++)
    System.out.print("*");
    System.out.print("\n");
    }
    //分步答应。打印菱形的下半部
    for(int i=1;i<=rows-n;i++)
    {
    for(int j=1;j<=i;j++)
    System.out.print(" ");
    for(int k=1;k<=2*(rows-n-i+1)-1;k++)
    System.out.print("*");
    System.out.print("\n");
    }
    }}
      

  2.   

    4  for(int kong=7;kong>i-1;kong--){
    5  System.out.print(" ");
    6  }
    打印的是空格,
    7  for(int xing=1;xing<=i;xing++){
    8  System.out.print("* ");
    9  }
    打印的是星号。这是,这两个是在同一个行上的。然后是第10行,进行换行,这样完成菱形上班部分的绘制。下半部分类同