@kuroko0725cc5

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Javaの2次元配列勉強中

解決したいこと

今職業訓練でJavaの2次元配列を使って成績を作ってるのですがうまく機能しません。
名前 国語 算数 理科 社会 英語 合計 平均
伊藤 80 27 18 58 71 254 50
山田 79 66 80 46 70 341 68
佐藤 43 50 67 33 35 228 45
吉田 67 13 35 21 39 175 35
上野 14 64 28 5 34 145 29
合計 249 249 249 249 249
平均 49 49 49 49 49

点数の配列の外で科目別の合計平均出しました。
ここだと英語の点数しか出てこないんですけど科目別にきちんと出すにはどうしたらいいんでしょうか?
出ているエラーメッセージを入力
```

例)


または、問題・エラーが起きている画像をここにドラッグアンドドロップ

該当するソースコード

public static void main(String[] args) {


        String[] name = {"伊藤", "山田", "佐藤", "吉田", "上野" ,"合計","平均"};

        int[] sum ;
        int s = 0;
        int average;


        System.out.println("名前        国語       算数      理科      社会        英語       合計       平均");

            int[][] a = new int[5][7];//5*5の配列を作成
            for (int i = 0; i <5; i++) {
                System.out.print(name[i] + " ");
                for (int j = 0; j < 5; j++) {

                    a[i][j] = (int) (Math.random() * 101);//0~100の乱数

                    a[i][5] = a[i][0] + a[i][1] + a[i][2] + a[i][3] + a[i][4];
                    a[i][6] = a[i][5] / 5;


                    s = a[0][j] + a[1][j] + a[2][j] + a[3][j] + a[4][j];

                    average= s/ 5;


                    System.out.printf("%10d",a[i][j]);




                }


                System.out.printf("%10d",a[i][5]);
                System.out.printf("%10d",a[i][6]);



                System.out.println();

            }
            System.out.print("合計");
            for(int i = 0; i < 5; i++){
                System.out.printf("%10s",s);
            }
           System.out.println();

        System.out.print("平均");
        for(int i = 0; i < 5; i++){
            System.out.printf("%10s",average);
        }


    }

自分で試したこと

ここに問題・エラーに対して試したことを記載してください。

0 likes

1Answer

今,average 変数と s 変数は,1つしかありません.
ですので,計算するたびに上書きされているため,最後に計算した英語の部分の計算が毎回出力されてしまっているようです.

例えば,averages を複数用意し,科目毎(国語,算数,.…) に計算結果を保持すれば,
人毎に値を表示した後に,計算結果を出力しやすいかもしれません.

1Like

Comments

  1. @kuroko0725cc5

    Questioner

    ありがとうございます!!なんとか完成させることができました。
    もっと単純にできると思うのでこれからも勉強してきます。
  2. 解決できたなら良かったです.

    習得目的だと,何をやっているかの理解や,自分で書けるようになることがポイントな気がするので,
    シンプルさよりも,読み易さや少し違う条件でも自分で書けるかどうかを確認できると良い気がしました.

Your answer might help someone💌