本关任务:使用 Scanner 对象获取一组等差整数(键盘输入的数之间用空格分隔,最后一个为 %,不计入计算),统计出等差数列的均值(保留两位小数)。
时间: 2024-09-22 13:06:02 浏览: 63
java 输入一个数字,反转输出这个数字的值(实现方法)
当需要完成这个任务时,你可以按照以下步骤使用 Java 中的 `Scanner` 类:
1. 首先,创建一个 `Scanner` 对象以从标准输入(键盘)读取用户的数据。
```java
import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
```
2. 然后,提示用户输入一系列等差的整数,并使用 `nextDouble()` 方法逐个获取输入,直到遇到百分比符号 `%`。注意这里直接使用 `nextDouble()` 因为用户可能会输入带小数点的数字。
```java
double sum = 0;
int count = 0;
String input;
while ((input = scanner.nextLine()).contains("%")) {
double num = Double.parseDouble(input.split(" ")[0]);
sum += num;
count++;
}
```
3. 接下来,从总数中减去最后一个不是数字的部分,因为它是百分比标记。
```java
sum -= Double.parseDouble(input.replace("%", ""));
```
4. 计算平均值,即总和除以数字的数量(排除 `%` 后的项),并保留两位小数。
```java
double average = Math.round(sum / count * 100) / 100.0; // 使用 round 函数四舍五入到最接近的双倍精度数值
```
5. 最后,打印结果。
```java
System.out.printf("等差数列的均值为: %.2f%n", average);
```
阅读全文