Java Home

Java技术修炼中...
posts - 20, comments - 22, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理
今天看了书本上的杨归三角程序写法后,自己试着去写,但写完后编译总是出现一个错误.
先看代码:
 1 public class YangHui{
 2     public static void main(String args[]){
 3         final int max=10;
 4         int a[][]=new int[max][];
 5         for(int i=0;i<a.length;i++){
 6             int a[i]=new int[i+1];
 7         }
 8         a[0][0]=1;
 9         for(int i=1;i<a.length;i++){
10             a[i][0]=1;
11             a[i][a[i].length-1]=1;
12             for(int j=1;j<a[i-1].length;j++){
13                 a[i][j]=a[i-1][j-1]+a[i-1][j];
14             }
15         }
16         
17         for(int i=0;i<a.length;i++){
18             for(int j=0;j<a[i].length;j++)
19                 System.out.print(a[i][j]+"\t");
20             System.out.println();
21         }
22     }
23 }

JCreator返回如下错误信息:
--------------------------------------------------
D:\Java\JCreator\YangHui.java:6: 需要 ']'
            int a[i]=new int[i+1];
                  ^
1 错误

处理已完成。
---------------------------------------------------
开始怎么都看不出第六行有什么错误,郁闷半天之后看了课本,发现原来多了一个int.突然醒悟这个数组已经在前面声明过了,在这里写int不是重复声明吗?......真是太粗心了,不过给偶一个深刻的教训,一定注意不要范重复声明数组的错误.
删掉int之后编译通过,正确的程序是这样的:

public class YangHui{
    
public static void main(String args[]){
        
final int max=10;
        
int a[][]=new int[max][];
        
for(int i=0;i<a.length;i++){
            a[i]
=new int[i+1];
        }
        a[
0][0]=1;
        
for(int i=1;i<a.length;i++){
            a[i][
0]=1;
            a[i][a[i].length
-1]=1;
            
for(int j=1;j<a[i-1].length;j++){
                a[i][j]
=a[i-1][j-1]+a[i-1][j];
            }
        }
        
        
for(int i=0;i<a.length;i++){
            
for(int j=0;j<a[i].length;j++)
                System.out.print(a[i][j]
+"\t");
            System.out.println();
        }
    }
}


 


只有注册用户登录后才能发表评论。


网站导航: