- 締切済み
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+ "です。"); } } どこをどのように直せば最高点が表示されるようになるでしょうか? ご指摘おねがいします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- PED02744
- ベストアンサー率40% (157/390)
>ご指摘おねがいします。 指摘という意味で間違いなく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)
>最後の for ループで j を宣言すれば良いです。 これは typo じゃね? あと、main 関数に throws IOException って書いてあったね。 コピー漏れかしらん。。
- pcbeginner
- ベストアンサー率46% (261/560)
>br.readLine() で例外 IOException が処理されていないと怒られた。 >最後の for ループで j が宣言されていないと怒られた。 >どこをどのようにすれば直るでしょうか? br.readLine() で例外 IOException を処理すれば良いです。 最後の for ループで j を宣言すれば良いです。 もう少し基礎を勉強した方が良いと思います。
- koko_u_
- ベストアンサー率18% (459/2509)
コンパイルしてみた。 br.readLine() で例外 IOException が処理されていないと怒られた。 最後の for ループで j が宣言されていないと怒られた。
補足
どこをどのようにすれば直るでしょうか?