2017-07-29 49 views
-1

有没有人有一个想法如何从给定的数字打印X? 如:如何使用数组绘制X?

给定数量的5 所以,我应该打印

X000X 
0X0X0 
00X00 
0X0X0 
X000X 

这是我的代码,仍然缺少了东西

public static void drawX(int number){ 
    int[][] draw = new int[number][number]; 
    for(int i = 0; i< number; i++){ 
     for(int k = 0; k<=i; k++){ 
      System.out.print(" "); 
     } 
     for(int j = number-1; j>i; j--){ 
      if(j == number-1 || j == i+1) 
       System.out.print("X "); 
      else 
       System.out.print(" "); 
     } 
     System.out.println(); 
    } 
    for(int i = 0; i< number; i++){ 
     for(int v = number; v>i; v--){ 
      System.out.print(" "); 
     } 
     for(int j = 0; j<i; j++){ 
      System.out.print("X "); 
     } 
     System.out.println(); 
    } 
} 
+0

你试过了什么?你熟悉二维数组和循环吗? – amit

+0

另外,发布您的代码。 – Sidtharthan

+0

我曾尝试迭代使用for循环,但结果仍然是错误的 – user8352237

回答

1

见下面的代码意见,突出了我注意到的一些问题。它可能不会立即解决所有问题,但它会为您带来希望的正确方向。

public static void drawX(int number){ 
    // draw is never used. 
    int[][] draw = new int[number][number]; 
    for(int i = 0; i< number; i++){ 
     for(int k = 0; k<=i; k++){ 
      // Here we print a " " even for k == i. 
      // Are you sure you want k <= i ? 
      // If you change it, dont forget to also change 
      // stop clause in next loop. 
      System.out.print(" "); 
     } 
     for(int j = number-1; j>i; j--){ 
      if(j == number-1 || j == i+1) 
       // j == number -1 prints X only in the last column 
       // Maybe you wanted number - i - 1? 
       // j == i+1 means you "skip" the ith element. 
       // Why the extra space after X? 
       System.out.print("X "); 
      else 
       // Why two spaces here? 
       System.out.print(" "); 
     } 
     System.out.println(); 
    } 
    for(int i = 0; i< number; i++){ 
     for(int v = number; v>i; v--){ 
      System.out.print(" "); 
     } 
     for(int j = 0; j<i; j++){ 
      // here you need to do very similar logic to 
      // what you did in previous loop, when printing first 
      // 'number' lines. 
      System.out.print("X "); 
     } 
     System.out.println(); 
    } 
}