- ベストアンサー
JAVAプログラミング
こんにちは。今JAVAで一つの値をコマンドラインから読んで、その値の数だけのIQスコアをさらに入力し、100以上と100以下の値がどれだけあるかというプログラムを書いている所です。データを読み取るメソッドと100以下か以上かを調べるメソッドの二つ必要で、入力したIQスコアの為に配列を利用しなければならないのです。もう何日もトライしているのですが、うまくいきません。どなたかアドバイス頂けるとうれしいです。よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
何かの宿題ですか? 要件が明確にわからないけどこんな感じでしょうか? 注:エラー処理は全くしていません import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class AAA { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Please insert the # of IQ scores"); String strCnt = br.readLine(); int intCnt = Integer.parseInt(strCnt); int[] arrayScore = new int[intCnt]; System.out.println("Please insert " + intCnt + " scores"); readdata(arrayScore, br); aboveandbelow(arrayScore); } private static void readdata(int[] arrayScore, BufferedReader br) throws IOException{ for(int i = 0; i < arrayScore.length; i++){ String strScore = br.readLine(); int intScore = Integer.parseInt(strScore); arrayScore[i] = intScore; } } private static void aboveandbelow(int[] arrayScore){ int BOUND_VAL = 100; int above = 0; int below = 0; for(int i = 0; i < arrayScore.length; i++){ if(arrayScore[i] >= BOUND_VAL){ above++; } if(arrayScore[i] <= BOUND_VAL){ below++; } } System.out.println("above " + above); System.out.println("below " + below); } }
その他の回答 (3)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
>受け取った値の受け渡し方や配列を使ってスコアを受け取る仕方がわかりません。 メソッドの引数にする、あるいはreturnで返すだけのように思います。 入力していいく数値が100以上と100以下の値がどれだけあるかを計数するだけなら、いちいち別のメソッドを用意するまでもありません。 質問では、2つのメソッドを用いるということですが、 その仕様(どういう引数を受け取って、何を返すのか)がわからなければ、それ以上書きようもありません(というか仕様の違うモノをよしんば書いてもしょうがない) とりあえず、今できているところを補足してください。 課題臭がするので、このままだと削除されると思います。
お礼
返信ありがとうございました!
- fortranxp
- ベストアンサー率26% (181/684)
コマンドラインからデータを入力するには http://www.nextindex.net/java/array.html を参考にされては。
お礼
よい情報感謝します。 トライしてみます。
- Bonjin
- ベストアンサー率43% (418/971)
>うまくいきません。 もう少し具体的に質問しましょう。この質問では何がわかっていて何がわからないのか見た人がわかりません。
補足
質問の補足をします。 プログラムの動きですが、最初に「Please insert the # of IQ scores」と表示させ、 その後一つのintの値をコマンドラインから入力し、 次に「Please insert -入力した数値- scores」と受け取った数を表示させて、 その数だけのIQスコアをさらにコマンドラインから入力して、 そのIQスコアの値で100以上が幾つ、100以下が幾つと表示させるプログラムです。 メインとともに二つのメソッド、 readdataとaboveandbelowというメソッドが必要です。 readdataメソッドはIQスコアをゲットして、配列を使って受け取り、 aboveandbelowを使って100以下か以上かを調べるようです。 受け取った値の受け渡し方や配列を使ってスコアを受け取る仕方がわかりません。 皆さんの助けを必要としています。 よろしくお願いいたします!
お礼
どうもありがとうございました!! 細かく教えて下さって本当に助かりました! もっと勉強します。