该程序用于输入用户输入,直到输入零,然后打印出有关整数的信息 . 它还意味着读取偶数/奇数输入,计算总和,找到最大和最小输入的整数,计算输入的总整数,并找出平均值 . 当用户输入0时它不会停止,如果没有输入,它将不会打印“无数据输入”行 . 它也没有正确计算偶数 .
import java.util.Scanner;
public class Lab4 {
public static void main(String[] args) {
int counter = 0;
double even = 0;
double odd = 0;
double sum = 0;
int input = 0;
int large = 0;
int small = 0;
double average;
System.out.print("Enter a series of values (0 to quit): ");
Scanner in = new Scanner(System.in);
while ((input = in.nextInt()) != 0) {
small = in.nextInt();
large = in.nextInt();
if (input != 0)
sum = input + sum;
counter++;
if (input > large)
large = input;
if (input < small)
small = input;
if (input % 2 == 0)
even = even + 1;
else
odd = odd + 1;
}
if (counter > 0) {
average = sum / counter;
System.out.println("The smallest integer is: " + small);
System.out.println("The largest integer is: " + large);
System.out.println("Total number of integers entered is " + counter);
System.out.println("Total even numbers entered is " + even);
System.out.println("Total odd numbers entered is " + odd);
System.out.println("The average value is: " + average);
} else {
System.out.println("No data was entered.");
}
}
}
2 回答
当读取第一个数字以填充大小时我们只需要这样做一次 . 并且没有用
in.nextInt()
重新读取数字,因为这将占用输入的下一个输入,这可能导致未终止于零错误 .您正在循环体中为
large
和small
输入额外的数字 . 使用++
而不是+= 1
,我更喜欢Integer.min
和Integer.max
;将small
和large
分别初始化为非常大和非常小的东西 . 就像是,