- 締切済み
Java問題 できればソースコードを教えて下さい。
import java.io.*; public class K4 { /** * @param args */ public static void main(String[] args) throws IOException{ // TODO 自動生成されたメソッド・スタブ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); double[] data = new double[10]; int n = data.length; System.out.println("10個の正の値を入力して下さい"); for(int i = 0;i <n; i++){ System.out.print("data[" + i + "]="); String str= br.readLine(); data[i] = Integer.parseInt(str); if(data[i] <0){ n=i; break; } } System.out.print("入力されたデータを表示します."); for(int i = 0;i <n; i++){ System.out.print("data[" + i + "]=" + data[i]); } } } double型のデータを10個保存できる配列を準備し,for文を用いてデータの入力と出力を行うプログラムを作成しなさい.(入力ループが終了した後に出力ループを設置する.) ただし,入力するデータは正の数のみとし,入力が負の数だった場合は,データが10個より少なくても,入力・出力を停止する事とする.(if文で入力値の判定を行い,入力データ個数も別途変数に保存するなどしておくこと.データ出力のループでは,そのデータの個数を保存した変数を利用して繰り返しの回数を制限する.) 最後に,全データの合計値と平均値も出力しなさい
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- nor_miya
- ベストアンサー率0% (0/0)
記載されたソースコードに続ける感じだと、下記のようなかんじでしょうか。 例外処理は行なっていません。 文字列からdoubleに変換する必要があるので、Integer.parseIntではなく、Double.parseDoubleを使います。 import java.io.*; public class K4 { /** * @param args */ public static void main(String[] args) throws IOException { // TODO 自動生成されたメソッド・スタブ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); double[] data = new double[10]; int n = data.length; System.out.println("10個の正の値を入力して下さい"); for (int i = 0; i < n; i++) { System.out.print("data[" + i + "]="); String str = br.readLine(); data[i] = Double.parseDouble(str); if (data[i] < 0) { n = i; break; } } System.out.println("入力されたデータを表示します."); for (int i = 0; i < n; i++) { System.out.println("data[" + i + "]=" + data[i]); } double sum = 0; for(int i = 0; i < n; i++){ sum += data[i]; } if (n != 0) { System.out.println("合計は " + sum + ",平均は " + sum / n + " でした."); } else { System.out.println("負の数が最初に入力されました."); } } }