用java编程:一段日期内,每天都有不同的温度。 因为某种原因,我想查看历史第二高温是多少。 输入格式: 第一行是一个n,表示统计的天数,1<=n<=100000。 第二行开始有n个温度(为简单起见,假定温度为正整数),中间用空格隔开。 输出格式: 输出排在第二位的温度。(如果所有温度都一样,则没有第二高的温度,则输出None) (由于天数可能很多,请勿使用数组来存放输入的所有温度)。
时间: 2024-03-06 09:49:09 浏览: 59
Temperature.java
以下是用 Java 编写的解决方案:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int max = -1, secondMax = -1;
for (int i = 0; i < n; i++) {
int temperature = scanner.nextInt();
if (temperature > max) {
secondMax = max;
max = temperature;
} else if (temperature != max && temperature > secondMax) {
secondMax = temperature;
}
}
if (secondMax == -1) {
System.out.println("None");
} else {
System.out.println(secondMax);
}
}
}
```
首先读入天数 n,然后遍历 n 个温度,使用两个变量 max 和 secondMax 分别记录最高温和第二高温。当遍历到一个新温度时,如果它比当前最高温还高,就将当前最高温赋值给 secondMax,将新温度赋值给 max;如果它比当前最高温低但是比第二高温高,就将它赋值给 secondMax。
最后判断 secondMax 是否被更新过,如果没有,说明所有温度都一样,输出 None;否则输出 secondMax。
阅读全文