gpt4 book ai didi

java - 为什么我的代码不返回 N 的最大值?

转载 作者:行者123 更新时间:2023-12-02 09:05:41 25 4
gpt4 key购买 nike

输出是一个巨大的数字。我已经尝试了大约 10 种不同的代码变体。我知道最大的问题是我没有正确理解。我正在尝试自学。这个问题把我彻底难住了。任何帮助,将不胜感激。

package com.codegym.task.task05.task0532;
import static java.lang.Integer.*;
import java.io.*;

/*
Task about algorithms
Write a program that:
1. reads a number N (must be greater than 0) from the console
2. reads N numbers from the console
3. Displays the maximum of the N entered numbers.


Requirements:
1. The program should read the numbers from the keyboard.
2. The program must display a number on the screen.
3. The class must have a public static void main method.
4. Don't add new methods to the Solution class.
5. The program should display the maximum of the N entered numbers.
6. The program should not display anything if N is less than or equal to 0.
*/

public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int maximum = MAX_VALUE;
int N = Integer.parseInt(reader.readLine());


int i;
int N2 = 0 ;
for (i = 0; i != N; i++){
N2 = Integer.parseInt(reader.readLine());
maximum = N2;

}
System.out.println(maximum);

}
}

最佳答案

您的逻辑不正确,并且在每次迭代时都覆盖了最大值,而没有实际检查该值。您想要的逻辑是从 IntegerMIN_VALUE 开始,并为每个传入值分配一个新的最大值(如果它大于之前的最大值)。

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int maximum = MIN_VALUE;
int N = Integer.parseInt(reader.readLine());

for (int i=0; i < N; i++){
int N2 = Integer.parseInt(reader.readLine());
if (N2 > maximum) {
maximum = N2;
}
}
System.out.println(maximum);

注意:这里有一个微妙但不太可能的边缘情况。如果用户输入 N = 0 作为输入数量,则报告的最大值将为 Integer.MIN_VALUE。这有点毫无意义,但却是上面使用的逻辑的产物。

关于java - 为什么我的代码不返回 N 的最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59834368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com