正如標題所述,我試圖找到最大值和最小值,均值和賠率數量以及所有輸入數字的平均值。查找最小值,最大值,平均值,賠率和平均值。 Java
問題所在。當我運行我的代碼時,我的賠率和平均值計數器看起來與它們相反,奇數會讀取偶數輸入,甚至會讀取奇數輸入。至於我的平均水平,我不知道它有什麼問題,我所知道的是它只能找到適當分數的平均值。
我的輸出示例將粘貼在最後。
import java.util.Scanner;
public class Homework7APrinter
{
public static void main (String[] args)
{
System.out.println("Enter a sequence of integers. Any non-integer to quit");
Scanner scan = new Scanner (System.in);
int min = Integer.MAX_VALUE;
int max = 0;
int count = 0;
int sum = 0;
int oddsCounter = 0;
int evensCounter = 0;
int getInt = Integer.MIN_VALUE;
double average = 0;
boolean notnull = true;
while(scan.hasNextInt())
{
if(true)
{
if (getInt%2==1)
{
evensCounter++;
System.out.println("even: " + evensCounter);
}
else
{
oddsCounter++;
System.out.println("odd: " + oddsCounter);
}
getInt = scan.nextInt();
if(getInt < min)
{
min = getInt;
}
else if(getInt > max)
{
max = getInt;
}
}
else
{
notnull = false;
}
sum += getInt;
System.out.println("sum " +sum);
count++;
System.out.println("count " +count);
average = sum/(count);
System.out.println("average " +average);
}
System.out.println("smallest: " + min);
System.out.println("largest: " + max);
System.out.println("even: " + oddsCounter);
System.out.println("odd: " + evensCounter);
System.out.println("average: " + average);
}
}
結果:
Enter a sequence of integers. Any non-integer to quit
1 //first input
odd: 1
sum 1
count 1
average 1.0
2 //second input
even: 1
sum 3
count 2
average 1.0
3 //third input
odd: 2
sum 6
count 3
average 2.0
4 //fourth input
even: 2
sum 10
count 4
average 2.0
q //quit the scan
smallest: 1
largest: 4
even: 2
odd: 2
average: 2.0 //average of 1, 2, 3, 4 = sum/n = 10/4 = 2.5 not 2.0
任何幫助,將不勝感激。謝謝!
你需要之前投下您和作爲'double'或'float'劃分,以獲得浮點結果。 – 2013-03-22 06:30:31
i猜它應該是如果(getInt%2 == 0) – 2013-03-22 06:30:54
這是死代碼,它永遠不會去其他 notnull = false; } 既然你的條件是如果(真),它永遠是真的 – Abi 2013-03-22 06:31:42