提问人:TRE 提问时间:11/17/2023 更新时间:11/17/2023 访问量:42
为什么我的代码没有打印我需要的东西?
Why is my code not printing what I need it to?
问:
任务是找到中位数,如果输入超过 10 个整数,则需要打印:“忽略超过 10 个的数据项”但它没有这样做,我的代码阻止它打印有什么问题?
我的代码:
import java.util.Scanner;
public class Median {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
final int MAX_INPUTS = 10;
int[] numbers = new int[MAX_INPUTS];
int count = 0;
int input;
// Read input until a negative number is encountered or the maximum number of inputs is reached
while (count < MAX_INPUTS) {
input = scnr.nextInt();
if (input < 0) {
break;
}
// Check if count exceeds the maximum allowed inputs before recording the number
numbers[count] = input;
count++;
}
// Check if no data entered
if (count == 0) {
System.out.println("No data entered.");
return;
}
// Calculate the median
double median;
if (count % 2 == 0) {
int middle1 = numbers[count / 2 - 1];
int middle2 = numbers[count / 2];
median = (double) (middle1 + middle2) / 2;
} else {
median = numbers[count / 2];
}
** // Display the result
if (count > MAX_INPUTS) {
System.out.println("Data items past number 10 ignored");
}
System.out.println("Median: " + median);**
}
}
**输入: 1 2 3 4 5 60 70 80 90 100 110 120 130 -100
您的输出: 中位数: 32.5
预期输出: 忽略超过 10 个的数据项 中位数:32.5**
我不知道为什么它不会打印“忽略超过数字 10 的数据项”?
答:
0赞
Lucas
11/17/2023
#1
因为您没有给扫描仪超过最大输入的机会。 如果你想让它过去,你需要把你的 if 语句放在 while 循环中。
while (input > 0 && count > MAX_INPUTS)
评论
if (count > MAX_INPUTS) {
if (count > MAX_INPUTS)
count