前提・実現したいこと
現在、Javaの配列、for文を勉強しています。その問題として、キーボードで入力した点数を配列で記録し、最後に平均値と上回った点数の数を出力するプログラムを作成したいです。
発生している問題・エラーメッセージ
キーボード入力で点数を記録、double型で平均値を求めるまでは出来たのですが、平均点以上の点数の合計をカウントするプログラムが上手くいかず、困っています。自分が作成したプログラムだと、 何人分入力しますか?4 点数を入力してください :65 点数を入力してください :32 点数を入力してください :65 点数を入力してください :98 平均値 :65.0 平均以上 :1名 平均以上 :2名 平均以上 :3名 となってしまい、平均以上が3回出力されてしまいます。アドバイスいただけると助かります。
該当のソースコード
Java
1import java.util.Scanner; 2 3public class Toukei2 { 4 public static void main(String[]args) { 5 Scanner sc = new Scanner(System.in); 6 System.out.print("何人分入力しますか?"); 7 int number =sc.nextInt(); 8 int score[]=new int[number]; 9 double ave=0; 10 int count=0; 11 12 for(int i=0;i<number;i++) { 13 System.out.print("点数を入力してください :"); 14 score[i]=sc.nextInt(); 15 } 16 for(int i=0; i<score.length; i++) 17 ave+=score[i]; 18 ave=(double)ave/score.length; 19 System.out.println("平均値 :"+ave); 20 21 for(int i=0; i<score.length; i++) { 22 if(ave<=score[i]) { 23 count+=1; 24 System.out.println("平均以上 :"+count+"名"); 25 } 26 } 27 } 28}
試したこと
平均値以上の時にint型の変数を用意し、ifで条件がtrueで変数に+1され、出力するようにした。
補足情報(FW/ツールのバージョンなど)
java Eclipse 2018-09
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー