こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

javaプログラムについて

* クラスの出席番号順にString型配列nameに名前が、
* int型配列scoreにテストの点数が格納されています。
*
* 出席番号1 大悟 74点
* 出席番号2 琴音 70点
* 出席番号3 勇輝 88点
*       ・
*       ・
*       ・
*       ・
*       ・
*
* このクラスの最高得点者の名前と、最低得点者の名前を
* 表示するメソッドを作成してください。
*
*/
public class MethodAdd8 {
public static void main(String[] args){
String[] name = {"大悟", "琴音","勇輝","葵","綾乃","和樹","凛","愛花","結愛","孝太郎"};

int[] score = {74,70,88,82,96,64,80,61,72,79};

//メソッドの呼び出し
int max=saikou(score); //最高得点メソッドへ
System.out.println(max);
int min=saitei(score); //最低得点メソッドへ
System.out.println(min);
}
//ここにメソッドを追加してください
public static int saikou(int[] score){ //最高得点者メソッド
int max=score[0];
for(int i=1; i<score.length; i++){
if(score[i]>max) max=score[i];
}
return max;//値を返す
}
public static int saitei(int[] score){ //最低得点メソッド
int min=score[0];
for(int i=1; i<score.length; i++){
if(score[i]<min) min=score[i];
}
return min;//値を返す
}
}

これで最高得点と最低得点は表示されるのですが、ここからどうやって最高得点者「綾乃」と最低得点者「愛花」を表示するのか分かりません。どなたか御教授お願い致します。

投稿日時 - 2014-09-24 19:54:59

QNo.8766980

すぐに回答ほしいです

質問者が選んだベストアンサー

/* クラスの出席番号順にString型配列nameに名前が、
* int型配列scoreにテストの点数が格納されています。
*
* 出席番号1 大悟 74点
* 出席番号2 琴音 70点
* 出席番号3 勇輝 88点
*       ・
*       ・
*       ・
*       ・
*       ・
*
* このクラスの最高得点者の名前と、最低得点者の名前を
* 表示するメソッドを作成してください。
*
*/

package methodadd8;

public class MethodAdd8 {
public static void main(String[] args) {
String[] name = { "大悟", "琴音", "勇輝", "葵", "綾乃", "和樹", "凛", "愛花", "結愛", "孝太郎" };
int[] score = { 74, 70, 88, 82, 96, 64, 80, 61, 72, 79 };

//メソッドの呼び出し
int maxind = saikouind(score);
System.out.println(name[maxind]);
int max = saikou(score); //最高得点メソッドへ
System.out.println(max);
int minind = saiteiind(score);
System.out.println(name[minind]);
int min = saitei(score); //最低得点メソッドへ
System.out.println(min);
}

//ここにメソッドを追加してください
public static int saikouind(int[] score) {
int ind = 0;
int max = score[0];
for (int i = 1; i < score.length; i++) {
if (score[i] > max) {
ind = i;
max = score[i];
}
}
return ind; //値を返す
}

public static int saikou(int[] score) { //最高得点者メソッド
int max = score[0];
for (int i = 1; i < score.length; i++) {
if (score[i] > max) {
max = score[i];
}
}
return max; //値を返す
}

public static int saiteiind(int[] score) {
int ind = 0;
int min = score[0];
for (int i = 1; i < score.length; i++) {
if (score[i] < min) {
ind = i;
min = score[i];
}
}
return ind; //値を返す
}

public static int saitei(int[] score) { //最低得点メソッド
int min = score[0];
for (int i = 1; i < score.length; i++) {
if (score[i] < min) {
min = score[i];
}
}
return min; //値を返す
}
}

投稿日時 - 2014-09-24 20:13:28

このQ&Aは役に立ちましたか?

8人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

最高得点、最低得点を返すメソッドを、そのインデックスを返すメソッドに変えるだけでは?
#1では最高得点、最低得点を返すメソッドを使って点数を求めていますが、インデックスを返しているので、score[index]、namde[index]で十分ですよね。

投稿日時 - 2014-09-24 22:27:06

あなたにオススメの質問