• ベストアンサー
  • すぐに回答を!

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;//値を返す } } これで最高得点と最低得点は表示されるのですが、ここからどうやって最高得点者「綾乃」と最低得点者「愛花」を表示するのか分かりません。どなたか御教授お願い致します。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数695
  • ありがとう数8

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

  • ベストアンサー
  • 回答No.1
  • asuncion
  • ベストアンサー率32% (1748/5397)

/* クラスの出席番号順に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; //値を返す } }

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • 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}; //メソッドの呼び出し score("綾乃",1); score("愛花",2); } //ここにメソッドを追加してください public static void score(String name,int score){ if(score==1){ System.out.println("綾乃"); }else{ System.out.println("愛花"); } } } この配列から、最高得点者と最低得点者は分かるので上記のようにしたところ、 score配列の中から最高得点者と最低得点者を探すように、と言われました。 考え方やヒントなどをお願いします。

  • 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 maxind = saikouind(score); System.out.println(name[maxind]); int minind = saiteiind(score); System.out.println(name[minind]); } //ここにメソッドを追加してください 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 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; //値を返す } これで名前は表示されるようになったのですが、 これをreturnを返さず表示するにはどうすればよいでしょうか? 色々試しているんですが、何故か名前が表示されなくなります。 丸投げしてしまうのですが、どうか知恵をお貸しください。 よろしくお願い致します。

  • javaプログラムについて

    コマンドライン引数から複数の値を受け取り、それらの最大と最小を表示する、というプログラムなのですが。 class Maxmin{   public static void main (String[] args) {    int max=Integer.MIN_VALUE;    int min=Integer.MAX_VALUE;    for (int i=0; i<args.length; i++){     int num= Integer.parseInt(args[i]);     if(num>max)     max=num;     if(num<min)     min=num;    }    System.out.println("最大値は" + max + "です。");    System.out.println("最小値は" + min + "です。");  } } このプログラムでも問題なく表示されるのですが、MIN_VALUEとMAX_VALUEを使用せずに表示する事、と指摘を受けました。自分の中でぱっと思いついたのがこれだったのですが、他にはどのような方法があるのでしょうか?

    • ベストアンサー
    • Java

その他の回答 (1)

  • 回答No.2

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

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • n人の教科ごとの最高点、最低点を求めるプログラム

    n人の教科ごとの最高点、最低点を求めるプログラム C言語で、タイトルのようなプログラムを作成しています。(n≦100) 教科は国語、数学、英語の3教科です。 作る際の条件として、最高点と最低点を同時に求める関数minmaxを一つだけしか作れません。 入力例) % ./a.out number of persons: 3 Japanese Math English No.1: 90 80 70 No.2: 71 91 81 No.3: 82 72 92 min score: 71 72 70 max score: 90 91 92 現在、構造まで習いました。その知識をもとに以下のようにプログラムしました。(ただ、教科ごとの最高、最低点を求める部分は代表して国語の点の最低点を求める部分だけ載せました) #include <stdio.h> #define MAX 100 struct score{     int jpn;     int math;     int eng; }; void minmax(struct score, int, struct score *, struct score *); main(){     struct score s[MAX], min, max;     int n, i;     printf("number of persons: ");     scanf("%d", &n);     printf("Japanese, Math, English\n");     for (i = 0; i < n; i++) {         printf("No.%d: ", i+1);         scanf("%d %d %d", &(s[i].jpn), &(s[i].math), &(s[i].eng));     }     minmax(s[MAX], n, &min, &max); <------------(☆)     printf("min score: %3d%3d%3d\n", min.jpn, min.math, min.eng);     printf("max score: %3d%3d%3d\n", max.jpn, max.math, max.eng); } void minmax(struct score s[], int n, struct score *minscore, struct score *maxscore) {     int i, max, min;     for (i = 1, min = s[0].jpn; i < n; i++) {         if (min > s[i].jpn) {             min = s[i].jpn;         }     }     minscore->jpn = min; (以下略) } しかし、これをコンパイルすると、 「(☆):パラメータの型1が関数宣言と一致しません。」と出ます。 どこがおかしいのでしょうか、どなたか教えてください。

  • javaプログラムについて

    */コマンドライン引数で2つの数字と1つの記号を受け取ります。 * //受け取った記号が『+』ならplusメソッドを呼び出し、 * //受け取った記号が『&#65293;』ならminusメソッドを呼び出し、 * //受け取った記号が『×』ならmultiplyメソッドを呼び出し、 * //受け取った記号が『÷』ならdivideメソッドを呼び出し、 * //それ以外が入力された場合は『計算できません。』と表示する * //プログラムを作成してください。 * */ public class MethodAdd9 { public static void main(String[] args) { int input1 = Integer.parseInt(args[0]); int input2 = Integer.parseInt(args[1]); String sign = args[2]; //ここにプログラムを追加してください if(sign.equals("+")){ plus(input1,input2);//プラスメソッドへ } if(sign.equals("-")){ minus(input1,input2);//マイナスメソッドへ } if(sign.equals("*")){ multiply(input1,input2);//掛算メソッドへ } if(sign.equals("/")){ divide(input1,input2);//割算メソッドへ } } // 四則演算を行うメソッドを追加 //プラスメソッド表示 public static void plus(int a,int b){ int c=a+b; System.out.println(a+b); } //マイナスメソッド表示 public static void minus(int d,int e){ int f=d-e; System.out.println(d-e); } //掛算メソッド表示 public static void multiply(int g, int h){ int i=g*h; System.out.println(g*h); } //割算メソッド表示 public static void divide(int j,int k){ int l=j/k; System.out.println(j/k); } } ここまで出来て、記号を認識してくれるようにはなったのですが、何故か"*"掛算の記号だけ読み込んでくれません。また、ここから「計算出来ません」と表示させるにはどうすれば良いでしょうか。知恵をお貸しください。

  • 全然わかりません JAVA 最大値 教えてください。

    全然わかりません JAVA 最大値 教えてください。 public class MaxMethods { ここに、int型の引数を2個とって、より大きい方の値 (両方とも同じ値のときはその値)を返す staticメソッドmax()を定義 ここに、int型の引数を3個とって、より大きい方の値 (両方とも同じ値のときはその値)を返す staticメソッドmax()を定義 public static void main(String[] args){ System.outprintln((max7,2)); System.outprintln((max8,9)); System.outprintln((max7,2,10)); System.outprintln((max8,11,2));

  • プログラムに詳しい方教えてください!

    5人の点数を入力して二つの関数maxとpmaxで最高点を求めたいのですが、 int max(int d[]) { int score; int i; score = d[0]; for(i=1;i<5;i++){ if(score < d[i]){ score = d[i]; } } return score; } int pmax(int *d) { int score; int i; score = *d; for(i=1;i<5;i++){ if(score<*(d+i)){ score = *(d+i); } } return score; } この2つの関数を利用して、 5人の点数を入力してください。 47 34 54 98 37 関数maxが求めた最高点は98点です。 関数pmaxが求めた最高点は98点です。   というように、動かしたいのですが、プログラムの組み方がよくわかりません。 はっきり言って、これは学校の宿題なんですが、どうしてもわからないんです。どうかわかる方、教えてください。

  • [Java]Javaの文法が間違っているのでしょうか・・・?

    6人分の小テストの点数を記録し,平均点,最高点,平均点以下の人の一覧を計算するプログラムを作成したいのです。 入力はコマンドラインから行います。 しかし,TEST配列がうまく初期化がうまく記述できないため,コンパイル時点で”シンボルが見つけられません”というエラーが出てしまいます。 Javaの経験が浅いので、文法そのものが間違っているか心配です。C言語についてはある程度知識がありますから、C言語と対比して教えて頂けたりすると大変たすかります。 宜しくお願い致します。 class Lecture { static Lecture[] TEST; static double avg=0; static int max=0; static int i = 0; static String kamoku; int scorebox; String name; String student_number; Lecture(int size){ TEST = new Lecture[size]; for (int i = 0; i < size; i++) { Exercise a = new Exercise(); Student b = new Student(); TEST[i] = new Lecture(a,b); } } static void add(Exercise score, Student aStudent) { TEST[i].name = aStudent.name; TEST[i].student_number = aStudent.student_number; TEST[i].scorebox = score.score; i++; } static void avg() { int sum=0; for (int i = 0; i < 6; i++) { sum += TEST[i].scorebox; } avg = sum / 6; } static void max() { int max = 0; int temp = 0; for (int i = 0; i < 6; i++) { if (max < TEST[i].scorebox) { temp = i; max = TEST[i].scorebox; } } max = i; } static void show_kamoku(){ System.out.println("科目:"+kamoku); } static void show(){ Lecture.max(); System.out.println("平均点:"+avg); System.out.println("最高得点者:"+TEST[max]); } static void under_avg(){ Lecture.avg(); System.out.println("平均点を下回った者"); for(int i=0 ; i<6 ; i++){ if(avg > TEST[i].scorebox){ System.out.println(TEST[i]); } } } } class Exercise { int score; Exercise(int score) { this.score = score; } Exercise() { } public String toString() { return " 得点:" + score; } } class Student { String name; String student_number; Student(String student_number,String name ) { this.name = name; this.student_number = student_number; } Student() { } public String toString() { return "学籍番号:" + student_number + " 名前:" + name; } } class ExerciseEvaluation { public static void main(String args[]){ Lecture.kamoku=args[0]; Lecture[] lec = new Lecture[6]; Student Y0 = new Student(args[1],args[2]); Exercise X0 = new Exercise(Integer.parseInt(args[3])); lec[0].add(X0, Y0); Student Y1 = new Student(args[4], args[5]); Exercise X1 = new Exercise(Integer.parseInt(args[6])); lec[1].add(X1, Y1); Student Y2 = new Student(args[7], args[8]); Exercise X2 = new Exercise(Integer.parseInt(args[9])); lec[2].add(X2, Y2); Student Y3 = new Student(args[10], args[11]); Exercise X3 = new Exercise(Integer.parseInt(args[12])); lec[3].add(X3, Y3); Student Y4 = new Student(args[13], args[14]); Exercise X4 = new Exercise(Integer.parseInt(args[15])); lec[4].add(X4, Y4); Student Y5 = new Student(args[16], args[17]); Exercise X5 = new Exercise(Integer.parseInt(args[18])); lec[5].add(X5, Y5); Lecture.show_kamoku(); Lecture.show(); Lecture.under_avg(); } }

  • プログラムの合体。

    jump7799_4836さん 2018/7/2103:34:44 public class Test2 { public static int メソッド () { System.out.println("メソッド()が呼ばれました"); return 0; } public static int メソッド (int i) { System.out.println("メソッド(int i)が呼ばれました"); return i; } public static int メソッド (int i, int j) { System.out.println("メソッド(int i, int j)が呼ばれました"); return i; } public static int メソッド (short s) { System.out.println("メソッド(short s)が呼ばれました"); return s; } public static int メソッド (double d) { System.out.println("メソッド(double d)が呼ばれました"); return (int) d; } } public メソッド class Test2 { public メソッド static void main(String[] args) { Test2.メソッド (); Test2.メソッド (1); Test2.メソッド (1,2); Test2.メソッド (1.1); Test2.メソッド ((short) 1); Test2.メソッド ((double)1); } } kouzou@GD348ZZD9:/WORK$ javac Test2.java Test2.java:29: エラー: class、interfaceまたはenumがありません public メソッド class Test2 { ^ Test2.java:30: エラー: <identifier>がありません public メソッド static void main(String[] args) { ^ エラー2個 2つのプログラムが合体することってあるのですか? いつもすみません。 解説のほど、宜しくお願い申し上げます。

    • ベストアンサー
    • Java
  • javaのプログラムに関する質問

    * 入力された数値の数だけ、"*"を表示するメソッド * displayAsterメソッドを作成して下さい。 */ public class MethodAdd3 { public static void main(String[] args){ // 入力された数字をint型の数値に変換 int iInput = Integer.parseInt(args[0]); // displayAsterメソッドの呼び出し displayAster(iInput); } // ここにdisplayAsterメソッドを作成 public static void displayAster(int iInput1){ for(i=0; i<iInput1; i++){ System.out.print("*"); } System.out.println(""); } ここまで出来たのですが、コンパイルエラーになってしまいます。 考え方かヒントなど、知恵をお貸しください。

  • Java trimの設定について

    Java trimの設定についてお伺いいたします。 最高気温と最低気温を表示することができずに困っております。trimをどのように設定すれば良いかご教授お願いします。 以下、ソースを記載します。 import java.io.*; public class Sample { public static void main(String[] args) { try{ BufferedReader br = new BufferedReader(new FileReader("kion.txt")); System.out.println("気温データ出力"); int test[] = new int[4]; String str; for(int i=0;i<test.length;i++){ str = br.readLine(); } int max = 0; int min = 0; for(int i=0;i<test.length;i++){ if(max < test[i]) max = test[i]; if(min > test[i]) min = test[i]; System.out.println(test[i]); } System.out.println("最高気温" + max + "です。"); System.out.println("最低気温" + min + "です。"); br.close(); } catch(IOException e){ System.out.println("入出力エラーです"); } } } また「kion.txt]は 東京 30.2 18.5 神奈川 34.2 18.5 埼玉 29.8 16.4 千葉 27.5 14.7 と作成しました。 これを 最高気温 神奈川 34.2 最低気温 千葉  14.7 と表示したいのですが、現在は「0 0 0 0」と表示するだけです。 何卒、よろしくお願い致します。

  • C言語の配列を使ったプログラミングについてです。

    5人の数学と英語の点数の合計が入る二次元配列を用意し、5人の数学 (scores [i] [0]) と英語 (scores [i] [1]) の点数の入力する.5人の数学と英語の合計点を計算し配列に入れる (scores [i] [2]).数学と英語と合計の一覧を表示したあと,合計点の最高点と最低点を表示するプログラムを作れ.という問題で #include<stdio.h> int main() { char score[5][3]; int i, min=0,max=0; for(i=0; i<5; i++){ printf("%d: M E?",i+1); scanf("%d %d", &score[i][0], &score[i][1]); score[i][2]= score[i][0]+score[i][1]; if(score[max]<score[i][2]) max=i; if(score[min]>score[i][2]) min=i; } printf("id Math Eng Total\n"); for(i=0; i<5; i++){ printf("%d %d %d %d\n", i+1, score[i][0], score[i][1], score[i][2]); } printf("min: %d max: %d",score[min], score[max]); } というプログラムを作ったのですが、scanfで改行を入れていないのに、1つ目の数字を入れると2つ目の数字はなぜか改行してしまい、さらに最低点と最高点が正しく出力されませんでした。なぜでしょうか。回答よろしくお願いします。

  • フローチャート 

    このプログラムのフローチャートを教えてください 1class QNode{ 2 private int min; 3 private int max; 4 private int mid; 5 private int key; 6 private int max2[]; 7 private int[] q; 8 static int k; 9 10 public QNode(int[] c){ 11 q=c; 12 max2=new int[10000]; 13 k=0; 14 } 15 16 public void narabikae(int a,int b){ 17 int tmp=q[a]; 18 q[a]=q[b]; 19 q[b]=tmp; 20 } 21 22 public void quick(int mi,int mx){ 23 24 min=mi; 25 max=mx; 26 max2[k]=mx; 27 28 if(min<max){ 29 mid=(min+max)/2; 30 key=q[mid]; 31 int i=min; 32 int j=max; 33 34 while(true){ 35 while(q[i]<key){ 36 i++; 37 } 38 while(key<q[j]){ 39 j--; 40 } 41 if(j<i) 42 break; 43 44 narabikae(i,j); 45 i++; 46 j--; 47 48 if(j<i) 49 break; 50 } 51 k++; 52 quick(min,j); 53 max=max2[--k]; 54 quick(i,max); 55 } 56 } 57} 58 59public class A1 { 60 61 /** 62 * @param args 63 */ 64 public static void main(String[] args) { 65 66 int[] q={2,8,4,11,15,9,1,13,19}; 67 68 QNode qn=new QNode(q); 69 qn.quick(0,8); 70 71 for(int i=0;i<9;i++){ 72 System.out.print(q[i]+" "); 73 } 74 } 75}