• 締切済み

javaについて・・・

このように出力されるプログラムを考えています ↓ 受験者人数を入力してください 3 3人分の点数を入力してください 50 80 20 1人目の点数は50です 2人目の点数は80です 3人目の点数は20です 最高点は80です っという感じのプログラムを考えています。 そしていまここまでプログラムを書いたのはいいのですが 感じんの最高点が表示されません・・・ import java.io.*; class test{ public static void main(String[] args) throws IOException{ System.out.println("テストの受験者数を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str =br.readLine(); int num = Integer.parseInt(str); int test[] = new int[num]; int max=0; System.out.println(test.length +"人の点数を入力してください"); for(int i=0; i<num; i++){ String str1 = br.readLine(); test[i] = Integer.parseInt(str1); } for(int i=0; j<num; i++){ System.out.println((i+1)+"番目の人の点数は"+ test[i]+"です。"); if(test[i]>max){ max=test[i]; } } System.out.println("最高点は" +max+ "です。"); } } どこをどのように直せば最高点が表示されるようになるでしょうか? ご指摘おねがいします。

  • Java
  • 回答数4
  • ありがとう数0

みんなの回答

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.4

>ご指摘おねがいします。 指摘という意味で間違いなくANo.1さんは指摘されています。 ・jがないというエラーになること、 ・IOExceptionが処理されないこと です。 それに対して >どこをどのようにすれば直るでしょうか? というお返事を見てしまうと 『ここまでできたソースを渡されて「ちゃんと動くように修正しろ」って課題を与えられたんだけど、全然わかんなくてここで聞こうと思ったら「丸投げ禁止」らしいからここまで自分で作ったことにして答えを聞いちゃおう』 って事かとかんぐってしまいます。 (1)j ではなく i に修正する必要があります。   for(int i= なのに 比較が j < になっているのがおかしいです。 (2)そもそもmainなのでthrowsを外してしまうか、   無理やりcatchでthrowsに対応するThrowableを作ってしまうか   しましょう。 (3)parseInt で NumberFormatExceptionが発生する可能性があります。   Integer.parseInt   に対するcatchも入れておいたほうがよろしいでしょう。

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.3

>最後の for ループで j を宣言すれば良いです。 これは typo じゃね? あと、main 関数に throws IOException って書いてあったね。 コピー漏れかしらん。。

回答No.2

>br.readLine() で例外 IOException が処理されていないと怒られた。 >最後の for ループで j が宣言されていないと怒られた。 >どこをどのようにすれば直るでしょうか? br.readLine() で例外 IOException を処理すれば良いです。 最後の for ループで j を宣言すれば良いです。 もう少し基礎を勉強した方が良いと思います。

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

コンパイルしてみた。 br.readLine() で例外 IOException が処理されていないと怒られた。 最後の for ループで j が宣言されていないと怒られた。

noraneko66
質問者

補足

どこをどのようにすれば直るでしょうか?

関連するQ&A

  • 初心者Javaの件。

    いつも大変お世話になりありがとうございます。 次の2つのコードは関係があるのでしょうか? 2つを合体させないとプログラムがエラーになるのでしょうか? 私は合体させないとプログラムが成立しないと思います。 アドバイスのほど宜しくお願い申し上げます。 コード1 public class Person { private int age; private double weight; private double height; public Person(int age, double weight, double height) { this.age = age; this.weight = weight; this.height = height; } public void show() { System.out.println("年齢は" + age + "体重は" + weight + "身長は"+ height +"です。" ); } } コード2 import java.io.BufferedReader; public class Sample3 { { public static void main(String args[]) throws Exception { person p[]; System.out.println("人数を入力してください。"); BufferedReader br = new BufferedReader(new inputStreamReader(System.in)); String str = br.readLine(); int num = Integer.parseInt(str); p = new Person[num]; for(int i=0; i<num; i++) { } System.out.println("年齢を入力してください"); str = br.readLine(); int age = Integer.parseInt(str); P = new Person[num]; for(int i=0; i<num; i++){ System.out.println("年齢を入力してください"); str = br.readLine(); int age = Intger.parseInt(str); System.out.println("体重を入力してください"); str = br.readLine(); double weight = Double.parseDouble(str); System.out.println("身長を入力してください"); str = br.readLine(); double height = Double.parseDouble(str); p[i] = new person(age, weight, height); } for(int i=0; i<num; i++) { p[i].show(); } } }

    • ベストアンサー
    • Java
  • Java for文

    for文について、キーボードで入力して、その数が素数(1またはその数以外で割り切れない数)であるかを判断するコードですが、for文とif文の関係が良くわかりません。ご教示ください。 <サンプル> public static void main(String[] args) throws IOException{ System.out.println("2以上の整数を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int num = Integer.parseInt(str); ※1 for(int i=2; i<=num; i++){ if(i == num){ System.out.println(num + "は素数です。"); ※2 }else if(num % i == 0){ System.out.println(num + "は素数ではありません。"); break; ※1と※2の処理について初心者でもわかるような解説をおねがいできますでしょうか? よろしくお願いいたします。

  • 今勉強中のjavaで。わからないことがあります。

    import java.io.*; class Ireru { public static void main(String args[]) throws IOException{ System.out.println("あなたは何歳ですか?"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); int num =Integer.parseInt(str1); System.out.println("あなたは" + num +"歳です。"); } } ------------------------------- import java.io.*; class Ireru { public static void main(String args[]) throws IOException{ System.out.println("あなたは何歳ですか?"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); System.out.println("あなたは" + str1 +"歳です。"); } } なぜ下では悪いのですか?なぜnum をつかないといけないかがわかりません。正確には str1とnumの違いがわからなくて困っています。何が混乱の原因ですか?

    • ベストアンサー
    • Java
  • 初心者Javaの件。

    いつも大変お世話になりありがとうございます。 Javaの基本的なプログラムについてです。 コードとエラーメッセージを記述致しました。 どう治せばいいか、教えてください。 ご回答のほど、宜しくお願い申し上げます。 import java.io.BufferedReader; public class Sample3 { { public static void main(String args[]) throws Exception { person p[]; System.out.println("人数を入力してください。"); BufferedReader br = new BufferedReader(new inputStreamReader(System.in)); String str = br.readLine(); int num = Integer.parseInt(str); p = new Person[num]; for(int i=0; i<num; i++) { } System.out.println("年齢を入力してください"); str = br.readLine(); int age = Integer.parseInt(str); P = new Person[num]; for(int i=0; i<num; i++){ System.out.println("年齢を入力してください"); str = br.readLine(); int age = Intger.parseInt(str); System.out.println("体重を入力してください"); str = br.readLine(); double weight = Double.parseDouble(str); System.out.println("身長を入力してください"); str = br.readLine(); double height = Double.parseDouble(str); p[i] = new person(age, weight, height); } for(int i=0; i<num; i++) { p[i].show(); } } Exception in thread "main" java.lang.Error: Unresolved compilation problems: person を型に解決できません inputStreamReader を型に解決できません Person を型に解決できません P を変数に解決できません Person を型に解決できません トークンに構文エラーがあります。これらのトークンを削除してください 重複ローカル変数 age Intger を解決できません トークンに構文エラーがあります。これらのトークンを削除してください person を型に解決できません at Sample3.main(Sample3.java:7)

    • ベストアンサー
    • Java
  • クラスのフィールドの比較方法

    2つのクラスのフィールドを比較して、その結果を以下のように表示させたいのですが、どのようにプログラミングをすればいいのでしょうか? 例 class Car { String carname; int height; int width; int length; } class Garage { String garagename; int height; int width; int depth; } public class example { public static void main (String[] args) throws IOException { Car car[]; car = new Car[5]; System.out.println("車の情報を入力してください。"); BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in); for(int i=0; i<5; i++){ car[i] = new Car(); System.out.println(i+1 + "台目の車の名前を入力してください。"); String str1 = br1.readLine(); System.out.println("車の高さを入力してください。"); String str2 = br1.readLine(); System.out.println("車の幅を入力してください。"); String str3 = br1.readLine(); System.out.println("車の長さを入力してください。"); String str4 = br1.readLine(); int h1 = Integer.parseInt(str2); int w1 = Integer.parseInt(str3); int l1 = Integer.parseInt(str4); car[i].carname = str1; car[i].height = h1; car[i].weith =w1; car[i].length =l1; } for(int i=0; i<5; i++){ garage[i] = new Garage(); System.out.println(i+1 + "つ目の車庫の名前を入力してください。"); String str5 = br2.readLine(); System.out.println("車庫の高さを入力してください。"); String str6 = br2.readLine(); System.out.println("車庫の幅を入力してください。"); String str7 = br2.readLine(); System.out.println("車庫の長さを入力してください。"); String str8 = br2.readLine(); int h2 = Integer.parseInt(str6); int w2 = Integer.parseInt(str7); int d2 = Integer.parseInt(str8); garage[i].garagename = str2; garage[i].height = h2; garage[i].weith =w2; garage[i].depth =d2; } } 出力例 garage1 car3 garage2 car5 garage3 car4 garage4 car2 garage5 car1 よろしくお願いします。

    • ベストアンサー
    • Java
  • Javaで計算

    Javaを10月から始めた初心者です。 摂氏から華氏に変えるプログラムを作成したいのですが、結果が合いません。 計算の所のプログラムが間違っているのだと思うのですが、どうすれば良いのか分からないので教えてください。 import java.io.*; class quiz01{ public static void main(String[] args) throws IOException{ System.out.println("摂氏の温度℃を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int num = Integer.parseInt(str); int F = 9/5*num+32; System.out.println("華氏の温度Fは " + F + " です。"); } } よろしくお願いします!

    • ベストアンサー
    • Java
  • 入力された入力値と最大値、最小値を表示させるプログラムで、最大値と最小

    入力された入力値と最大値、最小値を表示させるプログラムで、最大値と最小値のプログラムを下記に作成してみたら最小値が0になりました。そして、もう一つ繰り返し文を作ってみたら、最大値・最小値がうまく表示されました。この違いはどうしてですか?教えてください。 import java.io.*; class Hairetu1 { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("データはいくつですか?"); String str = br.readLine(); int num = Integer.parseInt(str); int a[]=new int[num]; int i; int max=0; int min=a[0]; for(i=0; i<a.length; i++){ System.out.print((i+1)+"番目は?"); str = br.readLine(); int tmp = Integer.parseInt(str); a[i] = tmp; if(max<tmp){ max=tmp; } if(min>tmp){ min=tmp; } } System.out.println("入力した値は"+test.length); System.out.println("最大は"+max); System.out.println("最小は"+min); } }

    • ベストアンサー
    • Java
  • クラスのフィールドの値を配列に代入する方法

    フィールドの値を代入したいのですが、 java.lang.ArrayIndexOutOfBoundsException というエラーが出てしまい、どうすればいいのかわかりません。 どのように対処すればいいのでしょうか? class Car { String carname; int height; int width; int length; } class public static void main(String[] args) throw IOException { Car car[]; car = new Car[5]; System.out.println("車の情報を入力してください。"); BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in); for(int i=0; i<5; i++){ car[i] = new Car(); System.out.println(i+1 + "台目の車の名前を入力してください。"); String str1 = br1.readLine(); System.out.println("車の高さを入力してください。"); String str2 = br1.readLine(); System.out.println("車の幅を入力してください。"); String str3 = br1.readLine(); System.out.println("車の長さを入力してください。"); String str4 = br1.readLine(); int h1 = Integer.parseInt(str2); int w1 = Integer.parseInt(str3); int l1 = Integer.parseInt(str4); car[i].carname = str1; car[i].height = h1; car[i].weith =w1; car[i].length =l1; } for(int i=0; i<5; i++){ int c_h[] = new int[5]; c_h[i] = car[i].height; } } よろしくお願いします。

    • ベストアンサー
    • Java
  • コンパイル時のエラーについて

    Java超初心者の者です。 下記のコードどこか間違っていますか? class Sample4 { public static void main(String args[]) throws IOException { System.out.println("いくつまでの合計を求めますか?"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int num = Integer.parseInt(str); int sum = 0; for(int i=1; i<=num; i++){ sum += i; } System.out.println("1から" + num + "までの合計は"      + sum + "です。"); } } テキスト通りに入力したつもりなのに何度確認して入力し直しても、 『'class'または'interface'がありません。』というエラーが 出てしまうのですが・・・ 色々ネットで検索して調べたのですが、分らなくて。

    • ベストアンサー
    • Java
  • javaに関する質問

    IT関係のスクールに通っていて、javaの勉強をしている人間です。javaに関して、ご質問があります。授業で課題を出されたのですが、どうしても行き詰っています。 問題は次のような内容です。 ・店別売上高表の作成 店番号と売上高を入力して、店ごとの売上を表示する表を作成するプログラムを作りましょう。 条件;(1)店番号は1~8までとしてください。 (2)入力処理は繰り返しできるようにしてください。 (3)売上1,000,000分に対して、*(アスタリスク)を1個表示させるようにしてください。 (4)表示する*が60個以上の場合は、60個だけ表示するようにしてください。 (5)全店舗の合計売上高も表示するようにしてください。 上の5つの条件を満たして下記の実行画面が表示させるようにします。 --------------------------------------------------------------- 店番号を入力してください(1~8) 2 売上高を入力してください(<99999999) 22222222 入力を続けますか yes...1,no...other number 1 店番号を入力してください(1~8) 5 売上高を入力してください(<99999999) 55555555 入力を続けますか yes...1,no...other number 2            店別売上高表         ---+---+---+---+---+---+---+---+---+---+---+---+ 1号店 0 2号店 22222222 ********************** 3号店 0 4号店 0 5号店 55555555 *************************************** 6号店 0 7号店 0 8号店 0 売上  77777777 -------------------------------------------------------------- という問題です。途中までの僕のやり方は import java.io.*; class A { public static void main(String args[])throws IOException{ BufferedReader br= new BufferedReader(new InputStreamReader(System.in)); do{ System.out.println("店番号を入力してください(1~8)"); String str1=br.readLine(); int num; if(num>=1 && num<=8) num=Integer.parseInt(str1); } System.out.println("売上高を入力してください (<99999999)"); String str2=br.readLine(); if(uriage<99999999) uriage=Integer.parseInt(str2); } System.out.println("入力を続けますかyes...1,no...other number"); flag=Integer.parseInt(br.readLine()); }while(flag==1); System.out.println(" 店別売上高表 "); System.out.println("--+---+---+---+---+---+---+---"); for(int i=0;i<8;i++){ System.out.println((i+1)+"号店"); }}} do~while文が終わった後、店番号の右に売上高とアスタリスクを表示させるためには、どうしたらいいのでしょうか?どなたか、もしよろしければ教えていただけないでしょうか?よろしくお願いします。

専門家に質問してみよう