【发布时间】:2021-12-07 21:23:11
【问题描述】:
import java.util.*;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter the size ??");
int n = sc.nextInt();
int[] marks = new int[n + 1];
for (int i = 0; i < n; i++) {
System.out.println("Enter " + i + " number ??");
marks[i] = sc.nextInt();
}
System.out.println("The following numbers are : ");
for (int j = 0; j < marks.length - 1; j++) {
System.out.println(marks[j] + " ");
}
int max = marks[0];
int min = marks[0];
int s = marks.length;
for (int i = 0; i < s; i++) {
if (marks[i] > max) {
max = marks[i];
}
if (marks[i] < min) {
min = marks[i];
}
}
System.out.println("Max is " + max + " Min is " + min);
}
输出:
Enter the size ??2
Enter 0 number ??
56
Enter 1 number ??
56
The following numbers are :
56
56
Max is 56 Min is 0
【问题讨论】:
-
因为你有
int[] marks = new int[n+1];。它应该只是new int[n];。+1在数组末尾添加了一个额外的 0,并且您没有用用户输入填充该插槽。因此,如果用户总是输入大于零的数字,则最后一个元素将是最小值。 -
您创建了一个比您需要的更大的数组。最后一项始终是
0。