5つの数値の合計、平均、最小、最大を取得しようとしていますが、どういうわけかこの出力を取得します。もう一度コードを書き直そうとしていますが、それでも同じです。私がこの人をチェックするのを手伝ってくれませんか...これが私のコードです:
import java.util.*;
public class Kleine {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
double average;
int count = 0, sum = 0, num, min = 0, max = 0;
System.out.println("Please enter the number of numbers you wish to evaluate:");
do {
num = scan.nextInt();
sum += num;
count++;
} while (count < 5);
average = sum / 5;
{
if (num > max) {
max = num;
}
if (num < min) {
min = num;
}
}
System.out.println("Your average is: " + average);
System.out.println("The sum is: " + sum);
System.out.println("Your maximum number is: " + max);
System.out.println("Your minimum number is: " + min);
}
}
出力は次のとおりです。
Please enter the number of numbers you wish to evaluate:
1
10
5
-3
6
Your average is3.0
The sum is:19
Your maximum number is 6
Your minimum number is 0
BUILD SUCCESSFUL (total time: 19 seconds)
最小数と最大数はどこかにあります...少しアドバイスをお願いします...
最小/最大値を処理する最良の方法は、各値の読み取り時にそれらを追跡することです。
int sum = 0;
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
for (int i=0; i < 5; ++i) {
num = scan.nextInt();
if (num > max) max = num;
if (num < min) min = num;
sum += num;
}
double average = sum / 5.0d;
max値とmin値に、それぞれ最小/最大の整数値をシードします。これにより、実際の最小値と最大値が読み込まれるときにキャプチャできます。また、for
ここでは、do
whileループよりも基本的なループの方がうまく機能すると思います。
純粋な整数値ではない可能性があるため、double型を使用して平均を計算することに注意してください(サンプルデータでも平均は整数ではありません)。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加