本当に汚いソースでごめんなさい。初心者です。クラスごとの教科別の点数の合計を示したいのですが、うまくいきません。
java
1 sum[i][q] += a[i][z][q];//クラスの科目ごとの点数の合計を出そうとしています‥
この場合は
java
1for(i=0;i<n;i++){ 2 System.out.printf("\n%d組の人数",i+1); 3 u = stdIn.nextInt(); 4 a[i] = new int[u][];//a[0][]は一組の点数の箱 5 ninzu += u;//u[0]は1組の人数 6 for(z=0;z<a[i].length;z++){ 7 a[i][z] = new int[s.length]; 8 for(q=0;q<s.length;q++){ 9 System.out.printf("%d組%d番の"+s[q]+"の点数",i+1,z+1); 10 a[i][z][q]=stdIn.nextInt(); 11 12 } 13 } 14 }
とは別のfor文を作成して、sum[i][q]を定義しなければならないのでしょうか?
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[]=null; 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;//u[0]は1組の人数 22 for(z=0;z<a[i].length;z++){ 23 a[i][z] = new int[s.length]; 24 for(q=0;q<s.length;q++){ 25 System.out.printf("%d組%d番の"+s[q]+"の点数",i+1,z+1); 26 a[i][z][q]=stdIn.nextInt(); 27 28 } 29 } 30 } 31 32 33 for(i=0;i<a.length;i++){ 34 System.out.println((i+1)+"組 | 合計 平均"); 35 System.out.println("-----+---------------"); 36 //合計 37 for(q=0;q<s.length;q++){ 38 for(z=0;z<a[i].length;z++){ 39 sum[i][q] += a[i][z][q];//クラスの科目ごとの点数の合計を出そうとしています‥ 40 } 41 } 42 System.out.printf( 43 "%2d|%7d%7.1f\n",s[i],sum[i][q](double)sum[i]/a[i].length); 44 45 sum=null; 46 } 47 // System.out.println("-----+---------------"); 48 // System.out.printf(" 計 |%7d%7.1f\n",total,(double)total/ninzu); 49 50 51 52 53 54 55 56 57 58/* 59 for(i=0;i<a.length;i++){ 60 System.out.println("組 | 合計 平均"); 61 System.out.println("-----+---------------"); 62 //合計 63 for(z=0;z<a[i].length;z++){ 64 for(q=0;q<s.length;q++) 65 sum[i] += a[i][z][q];//クラスごとの合計を出そうとしていますができません‥ 66 } 67 //total += sum[i]; 68 System.out.printf("%2d組|%7d%7.1f\n",i+1,sum[i],(double)sum[i]/a[i].length); 69 sum=null; 70 } 71 // System.out.println("-----+---------------"); 72 // System.out.printf(" 計 |%7d%7.1f\n",total,(double)total/ninzu); 73*/ 74 } 75} 76
変数が多く、読みにくいと思いますが、どうか私にアドバイスをくださるとうれしい限りです。よろしくお願いします。
タイトルと中身が合致していないように思います。もう少し中身に寄せたタイトルに修正してください
回答1件
あなたの回答
tips
プレビュー