大家看看为什么这段程序会抛异常啊public void toNumHangHui(int n){
int[][] num = new int[n][];
for(int i = 0; i < n;i++){
num[i][i] = 1; //输出对角线上的1
num[i][0] = 1; //输出第一列上的1
}
for(int i = 2; i < n;i++){ //求其他列上的数值
for(int j = 1; j < i ; j++){
num[i][j] = num[i - 1][j - 1] + num[i - 1][j];
}
}
for(int i = 0; i< n; i++){ //全部输出
for(int j = 0; j < 10; j++){
System.out.print(num[i][j] + "\t");
}
System.out.println();
}
}抛出的异常是
Exception in thread "main" java.lang.NullPointerException
int[][] num = new int[n][];
for(int i = 0; i < n;i++){
num[i][i] = 1; //输出对角线上的1
num[i][0] = 1; //输出第一列上的1
}
for(int i = 2; i < n;i++){ //求其他列上的数值
for(int j = 1; j < i ; j++){
num[i][j] = num[i - 1][j - 1] + num[i - 1][j];
}
}
for(int i = 0; i< n; i++){ //全部输出
for(int j = 0; j < 10; j++){
System.out.print(num[i][j] + "\t");
}
System.out.println();
}
}抛出的异常是
Exception in thread "main" java.lang.NullPointerException
改为int[][] num = new int[n][n];
// TODO 自动生成方法存根
int n = 10 ;
int[][] num = new int[n][n];
if(n ==1){
num[0][0] = 1;
System.out.println(num[0][0]);
}
if(n != 1){
for(int i = 0; i < n;i++){
num[i][0] = 1;
num[i][i] = 1;
}
for(int i = 2; i < n;i++){
for(int j = 1; j < i ; j++){
num[i][j] = num[i - 1][j - 1] + num[i - 1][j];
}
}
for(int i = 0; i< n; i++){
for(int j = 0; j < n; j++){
if(num[i][j] == 0){
continue;
}
System.out.print(num[i][j] + "\t");
}
System.out.println();
}
}
}
{
int[][] num = new int[n][];
for(int i = 0; i < n;i++)
{
num[i]=new int[i+1];
num[i][i] = 1; //输出对角线上的1
num[i][0] = 1; //输出第一列上的1
}
for(int i = 2; i < num.length ;i++)
{ //求其他列上的数值
for(int j = 1; j < num[i].length -1 ; j++)
{
num[i][j] = num[i - 1][j - 1] + num[i - 1][j];
}
}
for(int i = 0; i< num.length ; i++)
{ //全部输出
for(int j = 0; j < num[i].length ; j++)
{
System.out.print(num[i][j] + "\t");
}
System.out.println();
}
}
public void toNumHangHui(int n){
int[][] num = new int[n][n];
for(int i = 0; i < n ;i++){
num[i][i] = 1; //输出对角线上的1
num[i][0] = 1; //输出第一列上的1
}
for(int i = 2; i < n;i++){ //求其他列上的数值
for(int j = 1; j < n ; j++){
num[i][j] = num[i - 1][j - 1] + num[i - 1][j];
}
}
for(int i = 0; i< n; i++){ //全部输出
for(int j = 0; j < n; j++){
if(num[i][j] == 0)
continue;
System.out.print(num[i][j] + "\t");
}
System.out.println();
}
}