[英]How to find the maximum and minimum value in array
嗨,我是 Java 編程新手,目前正在學習數組。 所以我想要做的是找到數組的最大值和最小值,但由於某種原因我找不到最小值但我可以找到最大值。
這是我的輸出:
Enter the number of elements: 5
Enter a number: 1
Enter a number: 2
Enter a number: 3
Enter a number: 4
Enter a number: 5
The maximum number is:5
The minimum number is: 0
我使用相同的語句通過僅更改運算符來獲取最大值。 但不知何故,輸出始終為零。
這是我的代碼:
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter the number of elements: ");
int elements = input.nextInt();
int [] array = new int[elements];
int max = array[0];
int min = array[0];
for(int i = 0; i<elements; i++){
System.out.print("Enter a number: ");
array[i] = input.nextInt();
if(array[i]>max){
max = array[i];
}
if(array[i]<min){
min = array[i];
}
}
System.out.print("The maximum number is:" + max);
System.out.println();
System.out.print("The minimum number is: " + min);
}
}
任何幫助將不勝感激謝謝!
int min = array[0];
該語句在array[0]
為零時執行。
此時您還沒有讀取任何值,因此請使用以下命令初始化您的最小值和最大值:
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
事實上,您根本不需要數組,因為您不在循環之后使用它。 只需將掃描儀結果分配給在循環內聲明的int
變量。
將最大值分配給最小值,將最小值分配給最大值
min = Integer.MAX_VALUE;
max = Integer.MIN_VALUE;
當您使用 new 運算符分配內存時,
int [] array = new int[elements];
數組的每個元素都初始化為零。
所以當你做int min=array[0]
, min 被賦值為 0。然后與 1,2,3,4 和 5 比較,min 是最小的,因此不會改變。
為了解決這個問題,首先使用 for loop 輸入數組中的所有元素,然后將 min 和 max 初始化為 array[0]
嘗試這個
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter the number of elements: ");
int elements = input.nextInt();
int [] array = new int[elements];
for(int i = 0; i<elements; i++){
System.out.print("Enter a number: ");
array[i] = input.nextInt();
}
int max = array[0];
int min = array[0];
for(int i = 0; i<elements; i++){
if(array[i]>max){
max = array[i];
}
if(array[i]<min){
min = array[i];
}
}
System.out.print("The maximum number is:" + max);
System.out.println();
System.out.print("The minimum number is: " + min);
}
}
Integer 的默認初始值是 0。因此,當檢查它是否大於輸入值時,默認值保持不變
為什么首先需要一個數組?
Scanner console = new Scanner(System.in);
int entries = console.nextInt();
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
for(int i = 0; i < entries; i++){
int temp = console.nextInt();
if(temp < min) {
min = temp;
}
if (temp > max) {
max = temp;
}
}
定義整數數組時:
int [] array = new int[elements];
數組的所有元素的默認值均為0。
在這里,您是在從用戶處獲取輸入之前分配min的值,因此將其分配為0。
為避免此問題,您需要分別將min和max分配給max和minimum整數值。
min = Integer.MAX_VALUE;
max = Integer.MIN_VALUE;
否則,如果您的值不小於0,則它將始終返回最小值0。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.