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

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

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

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

配列

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

Q&A

解決済

1回答

936閲覧

java メソッドと配列を使って最小値の表示

keeen

総合スコア15

Java

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

配列

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

0グッド

0クリップ

投稿2020/10/12 09:17

キーボードから人数と人数分の身長体重を入力して配列に格納。その後最も低い身長体重を表示させたいのですが、以下のプログラムだと最後の、「最も低い身長」「最も痩せている体重」が0と表示されてしまいます。おそらくminimumメソッドの返り値reが機能していないのが原因だと思うのですが、なぜ機能しないのか分かりません。どこがおかしいのでしょうか。

java

1public class Main{ 2 public static void main(String[] args){ 3 System.out.print("人数は? "); 4 int people = new java.util.Scanner(System.in).nextInt(); 5 int[] heights; 6 heights = new int[people]; 7 int[] weights; 8 weights = new int[people]; 9 10 for(int i=0; i<people; i++){ 11 System.out.print(i+1 + "番目の身長 "); 12 heights[i] = new java.util.Scanner(System.in).nextInt(); 13 System.out.print(i+1 + "番目の体重 "); 14 weights[i] = new java.util.Scanner(System.in).nextInt(); 15 } 16 17 int re[]; 18 re = minimum(heights,weights); 19 System.out.println("最も背が低い人の身長" + re[0] + "cm"); 20 System.out.println("最も痩せている人の体重" + re[1] + "kg"); 21 } 22 23 public static int[] minimum(int mheight[], int mweight[]){ 24 int min = 0, min2 = 0; 25 26 for(int i=0; i<mheight.length; i++){ 27 if(min > mheight[i]){ 28 min = mheight[i]; 29 } 30 } 31 for(int j=0; j<mweight.length; j++){ 32 if(min2 > mweight[j]){ 33 min2 = mweight[j]; 34 } 35 } 36 int re[] = new int[2]; 37 re[0] = min; 38 re[1] = min2; 39 40 return re; 41 } 42} 43

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

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

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

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

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

guest

回答1

0

ベストアンサー

Java

int min = 0, min2 = 0;

初期値が問題です。
0cm未満、0kg未満の人間はいませんから、書き換えは一回も生じません

大きな値を適当に初期値に選んでみて下さい。

投稿2020/10/12 09:25

LouiS0616

総合スコア35660

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

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

keeen

2020/10/12 09:31

初期値を1000にすると欲しい結果が出ました。回答ありがとうございました!
LouiS0616

2020/10/12 09:34

なお mheight[0] と mweight[0] をそれぞれ初期値に選ぶのも良い方法です。 空の配列を渡された場合はクラッシュしますが、求められる最小値が無いので致し方が無い気もします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問