日期:2014-05-20  浏览次数:20799 次

这个java题目,能帮我一个个解释解释吗,刚学不久,求高手教教
//数组三角递增图形输出
public class Arryays{
public static void main(String args[]){
int i,j;
char a[][]=new char[5][];
a[0]=new char[1];
a[1]=new char[3];
a[2]=new char[5];
a[3]=new char[7];
a[4]=new char[9];
a[0][0]='a';
for(i=0;i<3;i++)
a[1][i]='b';
for(i=0;i<5;i++)
a[2][i]='c';
for(i=0;i<7;i++)
a[3][i]='d';
for(i=0;i<9;i++)
a[4][i]='e';
for(i=0;i<5;i++){ //不懂以下的for语句的思想!……!???
for(j=15-i;j>0;j--)
System.out.print(" ");
for(j=0;j<=2*i;j++){
System.out.print(a[i][j]+"");
}

------解决方案--------------------
最后一个循环后差了一个打印空格的,System.out.println();
见后面的代码,
代码运行的效果应该如下(每行前有空格):
a
bbb
ccccc
ddddddd
eeeeeeeee
关于for循环的说明见代码中的注释(记得结贴哦)。
Java code

public class Arryays{

    public static void main(String args[]) {
        int i, j;
        char a[][] = new char[5][];
        a[0] = new char[1];
        a[1] = new char[3];
        a[2] = new char[5];
        a[3] = new char[7];
        a[4] = new char[9];
        a[0][0] = 'a';
        for (i = 0; i < 3; i++)
            a[1][i] = 'b';
        for (i = 0; i < 5; i++)
            a[2][i] = 'c';
        for (i = 0; i < 7; i++)
            a[3][i] = 'd';
        for (i = 0; i < 9; i++)
            a[4][i] = 'e';
        for (i = 0; i < 5; i++) { // 外层循环5次,打印5行字母
            for (j = 15 - i; j > 0; j--)//表示每行打印字母前打印的空格数,第一行15个,依次递减
                System.out.print(" ");
            for (j = 0; j <= 2 * i; j++) {//表示每行打印同一字母的个数,和行数相关的规律
                System.out.print(a[i][j] + "");
            }
            System.out.println();
        }
    }
}