小弟刚学习java,很多东西都不知道怎么变通,最近刚学了二维数组,本来想用来解决一些事情的,但奈何初入门道,才疏学浅,苦想一上午依旧没有任何头绪,最终只能用古老的循环解决了!
public static void print(){
int i,j;
int row=100;
for(i=1;i<=row;i++){
for(j=row-1;j>=i;j--){
System.out.print(" ");
}
for(j=1;j<=2*i-1;j++){
System.out.print("*");
}
System.out.println();
}
}这种方式比较好理解,但是我想用一个二维数组来实现这个功能,不知道怎么弄,希望哪位路过的高手指点一下,留下代码!感激不尽!

解决方案 »

  1.   

    创建一个二维数组:
    int[][] array = new int[row][row];
    然后在你打印*的地方使用array[i][j]=1进行附值;
    最后循环打印数组中的值,为1的打印*,不为1的打印空格。
      

  2.   

    一个等腰三角形的宽和高是不一样的,高为宽的1/2加2
    如下:
    public class PrintTriangle { public static void printIsosceles(int n) {
    if (n%2==0) n++;
    char[][] cs = new char[n/2+1][n];
    for (int i=0; i<cs.length; i++) {
    for (int j=0; j<n; j++) 
    cs[i][j] = j>=(n-2*i-1)/2 && j<(n-(n-2*i-1)/2)? '*' : ' ';   
    }
    for (int i=0; i<cs.length; i++) {
    for (int j=0; j<n; j++) System.out.print(cs[i][j]);
    System.out.println();
    }
    }

    public static void main(String[] args) {
    printIsosceles(6);
    }
    }