gpt4 book ai didi

java - 数组的最小值返回 0

转载 作者:行者123 更新时间:2023-12-01 07:25:53 25 4
gpt4 key购买 nike

我无法弄清楚为什么数组中最小值的返回结果始终为 0。我已经检查了几个具有相同问题的问题,但无法使用这些解决方案,因为我的数组是在一个数组中创建的方法和我的最小/最大值是用另一种方法计算的。

无论如何,我可以将最小值/最大值保留在单独的方法中,并且仍然获得最小值的非零答案吗?另外,processSalesReport 方法中有更多代码,但我将其省略,因为它不相关。提前致谢!

import java.util.Arrays;
import java.util.Scanner;

public class CarSalesReport {

int sum;
int count = 0;
int[] num = new int[1500];
String ans = "";
Scanner userInput = new Scanner(System.in);

public CarSalesReport(Scanner input) {
String regex = "\\d+|done";
System.out.println("Type sales (type \"done\" when finished)");

do{
System.out.print("Sale Number " + (count + 1) + ": ");
ans = userInput.nextLine();
while(!ans.matches(regex)){
System.out.println("Please enter a positive number");
ans = userInput.nextLine();
}
if(!ans.equalsIgnoreCase("done")){
int ans1 = Integer.parseInt(ans);
num[count] = ans1;
count++;
}
}while(!ans.equalsIgnoreCase("done"));
}

public void processSalesReport(){
int max = num[0];
for(int a=0;a<num.length;a++){
if(max<num[a]){
max=num[a];
}
}
//This is where I'm having my problems.
int min = Integer.MAX_VALUE;
for(int a=1;a<num.length;a++){
if(min>num[a]){
min=num[a];
}
}
Arrays.sort(num);
System.out.println("\nMaximum sale: $" + max);
System.out.println("\nMinimum sale: $" + min);

}
}

最佳答案

这是因为您的数组中有 1500 个条目,这些条目都初始化为 0。您正在遍历所有条目以尝试找到最小值,而不是仅遍历已显式填充的条目。

在计算最小值的循环中,更改

for (int a = 1; a < num.length; a++) {

for (int a = 0; a < count; a++) {

以便您只查看已填充的条目。

关于java - 数组的最小值返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24899949/

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