黑马程序员技术交流社区
标题:
键入二维数组NullPointerException
[打印本页]
作者:
JoAndroid
时间:
2016-8-20 23:02
标题:
键入二维数组NullPointerException
/*
1.分析以下需求,并用代码实现:
(1)定义一个int类型的二维数组
(2)获取该二维数组最小元素,并输出
*/
import java.util.Scanner;
class Job_01s {
public static void main(String[] args) {
int [][] arr = new int[3][];
//System.out.println(arr);
//System.out.println(arr[0]);
//System.out.println(arr[0][0]);
int[][] arr1 = getArray();
printArr(arr1);
System.out.println("最小元素"+getMin(arr1));
}
//键入数组
public static int[][] getArray() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入二维数组中一维数组的个数:");
int length1 = sc.nextInt();
int arr[][] = new int [length1][];
for (int i = 0;i < length1 ;i++ ) {
System.out.println("请输入第"+(i+1)+"个一位数组有几个元素:");
int length2 = sc.nextInt();
for (int j = 0;j < length2 ;j++ ) {
System.out.println("请输入arr["+i+"]["+j+"]的元素");
arr[i][j] = sc.nextInt();
}
}
return arr;
}
//遍历输出二维数组
public static void printArr(int[][] arr){
for (int i = 0;i < arr.length ;i++ ) {
for (int j = 0;j < arr[i].length ;j++ ) {
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
System.out.println();
}
//获取最小值
public static int getMin(int[][] arr) {
int min = arr[0][0];
for (int i = 0;i < arr.length ;i++ ) {
for (int j = 0;j < arr[i].length ;j++ ) {
if (min > arr[i][j]) {
min = arr[i][j];
}
}
}
return min;
}
}
报错,求大神详解
作者:
小小丶白
时间:
2016-8-21 15:42
System.out.println("请输入第"+(i+1)+"个一位数组有几个元素:");
int length2 = sc.nextInt();
arr[i] = new int[length2];
你是不是少了这句话呢?????
作者:
阿卜
时间:
2016-8-21 17:15
1L真相了,你的arr[i]里面存的是null,并没有存入数组。
作者:
wl12345
时间:
2016-8-21 19:48
假装听不懂的我,悄悄地路过
作者:
JoAndroid
时间:
2016-8-24 22:59
小小丶白 发表于 2016-8-21 15:42
System.out.println("请输入第"+(i+1)+"个一位数组有几个元素:");
int length2 = ...
恩恩 是的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2