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

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

新規登録して質問してみよう
ただいま回答率
85.35%
多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

Java

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

2回答

6743閲覧

Javaの2次元配列の平均値を求めたい

suzu7

総合スコア3

多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

Java

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/06/07 06:47

前提・実現したいこと

Javaの2次元配列の平均値を求めたいです。

発生している問題・エラーメッセージ

平均値: 59と出したいのですが、 平均値:59 平均値:49 平均値:53 平均値:44と四つ出てしまいます。 どうしてそうなってしまうのかわかりません。

該当のソースコード

public class KadaiList4_1 {
public static void main(String[] args) {
int[][] scores = { { 59, 39, 100, 2, 15, 40, 84, 97 }, { 63, 18, 64, 97, 50, 98 } };

int sum = 0; int count = 0; for (int i = 0; i < scores.length; i++) { for (int j = 0; j < scores.length; j++) { sum += scores[i][j]; count++; System.out.println("平均値:" + sum / count); } } }

}

補足情報(FW/ツールのバージョンなど)

eclipse

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

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

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

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

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

guest

回答2

0

System.out.println("平均値:" + sum / count);がループの内側にあるからです。
ループの外に出しましょう。

あとループの条件式間違ってます。

投稿2020/06/07 07:08

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

suzu7

2020/06/07 12:05

System.out.printlnをループの外に出さないといけなかったんですね。 他のも何かがおかしいと思っていたのですが、ループの条件式だったんですね! ご回答いただきありがとうございました!
suzu7

2020/06/27 08:39

返事が遅れてしまい申し訳ありません。 デバッグ機能というものがあるんですね! URLまでありがとうございます!本当にご丁寧にありがとうございました。
guest

0

ベストアンサー

java

1public class KadaiList4_1 { 2 public static void main(String[] args) { 3 int[][] scores = { { 59, 39, 100, 2, 15, 40, 84, 97 }, { 63, 18, 64, 97, 50, 98 } }; 4 5 int sum = 0; 6 int count = 0; 7 8 for (int i = 0; i < scores.length; i++) { 9 for (int j = 0; j < scores[i].length; j++) { 10 sum += scores[i][j]; 11 count++; 12 } 13 } 14 System.out.println("平均値:" + sum / count); 15 } 16}

実行例

イメージ説明

投稿2020/06/07 08:39

katoy

総合スコア22324

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

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

suzu7

2020/06/07 12:05

無事に動作しました。 丁寧な解説ありがとうございます。2つ目のfor文の間違いに気づけました! お力添えいただき本当にありがとうございました!
katoy

2020/06/14 08:38

低評価の理由をお知らせください。 その理由を質問者ひゃ他の閲覧者が低評価の理由を知ることは、なにかの学びにつながる可能性があります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問