初心者です。 よろしくお願いします。
以下のソースを実行すると、
クラス数:3
1組の人数3
1組1番の国語の点数22
Exception in thread "main" java.lang.NullPointerException
at M6_19.main(M6_19.java:25)
と出力されます。
自分としましては、
クラス数:3
1組の人数3
1組1番の国語の点数22
1組1番の数学の点数68
1組1番の社会の点数57
…
2組1番の国語の点数41
としたいのですが、どこでエラーとなってしまうのか、わかりません。
java
1import java.util.Scanner; 2class M6_19{ 3 public static void main(String[] args){ 4 Scanner stdIn = new Scanner(System.in); 5 int n,i,z,p,q; 6 int u=0; 7 int j; 8 int sum=0; 9 int total=0; 10 int ninzu=0; 11 String[] s = {"国語","数学","社会","理科","英語"}; 12 13 System.out.print("クラス数:"); 14 n=stdIn.nextInt(); 15 int[][][] a = new int[n][][]; 16 17 for(i=0;i<n;i++){ 18 System.out.printf("\n%d組の人数",i+1); 19 u = stdIn.nextInt(); 20 a[i] = new int[u][];//a[0][]は一組の点数の箱 21 ninzu += u; 22 for(z=0;z<a[i].length;z++){ 23 for(q=0;q<s.length;q++){ 24 System.out.printf("%d組%d番の"+s[q]+"の点数",i+1,z+1); 25 a[i][z][q]=stdIn.nextInt(); 26 a[i][z] = new int[q]; 27 } 28 } 29 } 30 31 /* 32 System.out.println(" 組 | 合計 平均"); 33 System.out.println("-----+---------------"); 34 //合計 35 for(i=0;i<a.length;i++){ 36 for(z=0;z<a[i].length;z++){ 37 for(q=0;q<s.length;q++){ 38 sum += a[i][z][q]; 39 } 40} 41total += sum; 42System.out.printf("%2d組|%7d%7.1f\n",i+1,sum,(double)sum/u); 43sum=0; 44} 45System.out.println("-----+---------------"); 46System.out.printf(" 計 |%7d%7.1f\n",total,(double)total/ninzu); 47*/ 48} 49} 50```ここに言語を入力 51コード
なお、コメントアウトしてあるところは改良前のものですので、気になさらないでください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/14 07:18