質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

999閲覧

javaのループで配列に入力した数値を格納して計算していきたいのですが上手くいきません

okome88

総合スコア1

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2020/04/29 01:24

編集2020/04/29 01:55

入力した数値を配列に格納して総合値や平均値を求めていきたいです
最後にsubjectごとの平均を求めたいのですが求めたい数値と異なった値が出てきますので教えていただきたいです

Java

1public class Sample1 { 2 public static void main(String[] args) { 3 final int MEMBER = 4; 4 final int SUBJECT = 3; 5 int[] total = new int[MEMBER]; 6 int[][] score = new int[MEMBER][SUBJECT]; 7 int avg = 0; 8 int ave = 0; 9 int ave2 = 0; 10 int ave1 = 0; 11 int[] point = new int[5]; 12 for (int i = 0; i < MEMBER; i++) { 13 System.out.println("****Member" + (i + 1) + "****"); 14 for (int j = 0; j < SUBJECT; j++) { 15 16 System.out.print("Input point of subject" + (j + 1) + ":"); 17 score[i][j] = new java.util.Scanner(System.in).nextInt(); 18 total[i] += score[i][j]; 19 } 20 } 21System.out.println("*Name****S1*****S2*****S3*****Total***"); 22 23 for (int i = 0; i < MEMBER; i++) { 24 System.out.print(" "); 25 System.out.print("Members" + (i + 1)); 26 for (int j = 0; j < SUBJECT; j++) { 27 System.out.print(" "); 28 System.out.print(score[i][j]); 29 point[0] += score[i][0]; 30 point[1] += score[i][1]; 31 point[2] += score[i][2]; 32 System.out.print(" "); 33 } 34 avg = total[i] / SUBJECT; 35 System.out.print(total[i]); 36 System.out.print(" "); 37 System.out.println(Math.ceil(avg)); 38 39 } 40 ave = point[1] / MEMBER; 41 ave1 = point[2] / MEMBER; 42 ave2 = point[3] / MEMBER; 43System.out.println("-----------------------------------------"); 44 System.out.print("AVG"); 45 System.out.print(" "); 46 System.out.print(ave); 47 System.out.print(" "); 48 System.out.print(ave1); 49 System.out.print(" "); 50 System.out.print(ave2); 51 } 52}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2020/04/29 01:26

うまくいかないとはどういうふうにうまくいかないのか説明を追記しましょう また、このままではコードが読みづらいので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
guest

回答1

0

ベストアンサー

point[0]、point[1]、point[2] に値を設定しているのに、
point[1]、point[2]、point[3] の値を使っています。

for (int j のループで、point[0]、point[1]、point[2] に値を設定して
いますが、ループの外の i のループで設定しないといけません。というよりも、
total を読み込み時に行っているのだから、point もそうすればよいでしょう。

数値を1個読むごとに Scannerオブジェクトを new していますが、
最初に 1回生成するだけにしましょう。

Java

1import java.util.Scanner; 2 3public class Sample1 { 4 public static void main(String[] args) { 5 final int MEMBER = 4; 6 final int SUBJECT = 3; 7 int[][] score = new int[MEMBER][SUBJECT]; 8 int[] total = new int[MEMBER]; 9 int[] point = new int[SUBJECT]; 10 Scanner sc = new Scanner(System.in); 11 12 for (int i = 0; i < MEMBER; i++) { 13 System.out.println("****Member" + (i + 1) + "****"); 14 for (int j = 0; j < SUBJECT; j++) { 15 System.out.print("Input point of subject" + (j + 1) + ":"); 16 score[i][j] = sc.nextInt(); 17 total[i] += score[i][j]; 18 point[j] += score[i][j]; 19 } 20 } 21 System.out.println("*Name****S1*****S2*****S3*****Total***"); 22 for (int i = 0; i < MEMBER; i++) { 23 System.out.print(" Members" + (i + 1)); 24 for (int j = 0; j < SUBJECT; j++) { 25 System.out.print(" " + score[i][j] + " "); 26 } 27 double avg = (double)total[i] / SUBJECT; 28 System.out.println(total[i] + " " + avg); 29 } 30 double ave0 = (double)point[0] / MEMBER; 31 double ave1 = (double)point[1] / MEMBER; 32 double ave2 = (double)point[2] / MEMBER; 33 System.out.println("-----------------------------------------"); 34 System.out.println("AVG " + ave0 + " " + ave1 + " " + ave2); 35 } 36}

平均点は整数にしたほうがいいですか?

投稿2020/04/29 06:07

kazuma-s

総合スコア8224

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

okome88

2020/04/29 10:31

ありがとうございます 整数じゃなくても大丈夫です TotalとAVGの平均値も出したいのですがどうしたらよろしいでしょうか?
kazuma-s

2020/05/07 23:44

平均値は、平均を求めたい複数の値を足して、それを個数で割ることです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問