みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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文で入力値の判定を行い,入力データ個数も別途変数に保存するなどしておくこと.データ出力のループでは,そのデータの個数を保存した変数を利用して繰り返しの回数を制限する.)
最後に,全データの合計値と平均値も出力しなさい

投稿日時 - 2013-02-18 20:25:30

QNo.7952289

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

記載されたソースコードに続ける感じだと、下記のようなかんじでしょうか。
例外処理は行なっていません。
文字列から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("負の数が最初に入力されました.");
}
}

}

投稿日時 - 2013-03-10 22:02:20

あなたにオススメの質問