[解決済み] 不特定多数の整数を読み込み、pos, neg, total, averageを求めるプログラムを作成せよ。
2022-01-28 16:11:22
質問
(正負の数を数え、数の平均を計算する)Write 不特定多数の整数を読み込んで、その数が何個か判断するプログラム。 正と負の値を読み取り、その合計と平均を計算する。 入力された値(0は数えない)。プログラムは入力 0 で終了する. 平均値を浮動小数点数で表示します。以下は実行例です。
整数を入力し、0 であれば入力終了: 1 2 -1 3 0
陽性の数は3
ネガポジの数は1
合計は5.0
平均値は1.25
2つの大きな問題があります。1) ループを停止させることができません。2) ループを停止させたとしても、平均値が不足する。上記の例では、私の平均は常に1.0であり、1.25であるべきではありません。これは、プログラムが5と等しい4つの数値ではなく、合計5つの数値を読み取っているようなものです。 以下のコードに見られるものが、私の使える全てです。javaの基本中の基本ですが...
import java.util.Scanner;
public class NewClass {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int positive = 0, negative = 0, total = 0, count = 0;
float average;
System.out.println("Enter the number: ");
int number = input.nextInt();
while(number != 0) {
total += number;
count++;
if(number > 0){
positive++;
}
else if(number < 0){
negative++;
}
average = total / count;
System.out.println("The number of positives is "+ positive);
System.out.println("The number of negatives is "+ negative);
System.out.println("The total is "+ total);
System.out.println("The average is "+ average);
}
}
}
解決方法は?
より多くの数値を読み取る必要があります。ループの前に1つの値を読み取る。次のようなことができます。
int number;
while((number = input.nextInt()) != 0) {
total += number;
count++;
if(number > 0){
positive++;
} else if(number < 0) {
negative++;
}
} // <-- end loop body.
float average = total / (float) count; // <-- not integer math.
System.out.println("The number of positives is " + positive);
System.out.println("The number of negatives is " + negative);
System.out.println("The total is " + total);
System.out.println("The average is " + average);
関連
-
[解決済み】Hibernateエラー:同じ識別子値を持つ別のオブジェクトがすでにセッションに関連付けられました。
-
[解決済み】スレッド「main」での例外 java.lang.StringIndexOutOfBoundsException: 文字列のインデックスが範囲外です。0 [閉店]
-
[解決済み】"|="の意味は何ですか?(パイプ等号演算子)
-
[解決済み】 JAVA 変数宣言はここではできない
-
[解決済み】Javaを使用するSelenium - ドライバの実行ファイルのパスは、webdriver.gecko.driverシステムプロパティで設定する必要があります。
-
[解決済み】文字列中の � を置換する方法
-
[解決済み] Hide Utility Class Constructor : ユーティリティクラスはパブリックまたはデフォルトコンストラクタを持つべきではありません。
-
[解決済み] java.sql.SQLException を取得しました。ResultSet が終了した後の操作は許可されません。
-
[解決済み】javaで無効な文字定数
-
[解決済み] SQLエラー。0, SQLState: 08S01 通信リンクの失敗 [重複]。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] if / for / while 内で "Missing return statement" が発生する。
-
[解決済み】Doubleはdereferencedできない?
-
[解決済み】不正な反射的アクセスとは?
-
[解決済み】Android Studioでタスク :app:compileDebugJavaWithJavac の実行に失敗しました。
-
[解決済み】ResultSetの例外 - 結果セットの開始前
-
[解決済み】Javaで無限大を実装する方法とは?
-
[解決済み】なぜjava.io.Fileにはcloseメソッドがないのでしょうか?
-
[解決済み】javaで無効な文字定数
-
[解決済み】Eclipseで「パッケージエクスプローラー」ビューが見つからない
-
[解決済み】 executeQuery()でデータ操作文が発行できない。)