2014-03-19 6 views
-1

안녕하세요 난 여기 내 프로그램에 약간의 문제가 코드널 포인터 예외 파스칼 삼각형

public class zad1 
{ 
    static public class WTP 
    { 
     int[] wiersz; 

     int silnia(int a) 
     { 
      if (a < 1) 
      { 
       return 1; 
      } 
      else 
      { 
       return a * silnia(a - 1); 
      } 
     } 

     WTP(int n) 
     { 
      int wiersz[] = new int[n+1]; 

      for(int i = 0; i<=n; i++) 
      { 
       wiersz[i] = silnia(n)/(silnia(n - i) * silnia(i)); 
      }    
     } 
    } 


    public static void main(String args[]) 
    { 
     int a1 = Integer.parseInt(args[0]); 
     WTP tablica = new WTP(a1); 

     for(int i = 1; i<=args.length; i++) 
     { 
      System.out.println(tablica.wiersz[i]); 
     } 
    } 
} 

내가 그것을들이받은 후 오류를 받고 있어요 : 스레드의 주요 java.lang의

예외 .nullpointerexpception at zad1.java:58.

58 개의 라인은 다음 프로그램의 System.out.println(tablica.wiersz[i]);

포인트 파스칼 삼각형의 라인을 작성하고으로 값을 넣는 것이다. 그 후 콘솔에서 실행할 때 (예 : java zad1 4 0 1) 4 줄의 삼각형의 값을 계산하고 4 뒤에 주어진 값을 출력해야합니다.

어떤 아이디어가 잘못 되었습니까? :/ 도움을 주셔서 감사합니다하지만 지금은 하나의 문제가 그것의 posistion + 1 posistion 대신에 예를 들어 4 라인에 0-1, 1-4, 2-6, 3-4하지만 그 쇼에 있어야합니다 0-4, 1-6, 2-4 i = 1, i < = args.length; i ++)를 i = 0으로 변경했지만 그 도움이 안됨 :/

답변

2

로컬 변수를 만듭니다. WTP 생성자 내에 wiersz입니다.

WTP 생성자에서 행을 this.wiersz = new int[n+1];으로 변경하십시오.

+0

나는 그것을 시도하고 4 가지 오류를 얻는다 : 기호 [,]로; 마지막 줄은 35 행 모두에있는 문장이 아닙니다. wiersz [] = new int [n + 1]; – user3438022

+0

오류는 무엇이며 어디에서 가져 오나요? – anirudh

+0

this.wiersz [] ...로 변경하려고하면 ... zad1.java:35 불법적으로 시작하는 식의 표시 및 [] 기호의 가리키는 오류 – user3438022