Java 使用单个低位数字时,最小值和最大值不能正常工作
我正在根据用户输入设置数组,然后尝试查找最小值和最大值。但它似乎只适合查找最大值而不是最小值Java 使用单个低位数字时,最小值和最大值不能正常工作,java,arrays,max,min,Java,Arrays,Max,Min,我正在根据用户输入设置数组,然后尝试查找最小值和最大值。但它似乎只适合查找最大值而不是最小值 import java.util.Scanner; public class GradeBookKeeper { public static void main(String arg[]) { int numItems; int[] items; double sum=0; Scanner scan= new Scanner(System.in); System.out.pri
import java.util.Scanner;
public class GradeBookKeeper
{
public static void main(String arg[])
{
int numItems;
int[] items;
double sum=0;
Scanner scan= new Scanner(System.in);
System.out.println("Enter the number of students: ");
numItems=scan.nextInt();
items=new int [numItems];
int largest=items[0],smallest=items[0];
for (int i = 0 ; i < items.length; i++ )
{
System.out.println("Enter the grade for student "+(i+1)+":");
items[i] = scan.nextInt();
sum = sum + items[i];
if(largest < items[i])
{
largest = items[i];
}
else
{
smallest = items[i];
}
}
System.out.printf("The average is "+"%.2f\n",sum/items.length);
System.out.println("The minimum is: "+smallest);
System.out.println("The maximum is: "+largest);
scan.close();
}
}
import java.util.Scanner;
公班簿记员
{
公共静态void main(字符串arg[])
{
int numItems;
int[]项;
双和=0;
扫描仪扫描=新扫描仪(System.in);
System.out.println(“输入学生人数:”);
numItems=scan.nextInt();
项目=新整数[numItems];
int最大=项目[0],最小=项目[0];
对于(int i=0;i
//输出
输入学生人数:
四,
输入学生1的成绩:
二,
输入学生2的成绩:
一,
输入学生3的成绩:
二,
输入学生4的成绩:
三,
平均值是2.00
最低限额为:2
最大值为:3问题在于,当您在遍历items数组时未找到新的最大元素时,您仅设置了
最小值。因此,将其更改为另一个if语句,而不是else
,以查看您迭代的项是否小于当前的最小项,如下所示:
if(largest < items[i])
{
largest = items[i];
}
if(smallest > items[i])
{
smallest = items[i];
}
这样做的原因是你永远找不到小于0的分数,因为这是你以前得到的分数,最小的分数总是0。if(最大if (largest < items[i])
largest = items[i]
else if (smallest > items[i])
smallest = items[i]
最大=项目[i]
else if(最小>项[i])
最小=项目[i]
此外,最小值的第一个值应为其中一项,因为任何等级都不能小于0
这应该行得通,
我希望你能理解我在这里只是为了一个替代版本。它的工作方式是对数组进行排序(从最低到最高),然后将最低作为最小值,将最高作为最大值
import java.util.Arrays;
import java.util.Scanner;
public class GradeBookKeeper
{
public static void main(String[] arg)
{
Scanner scan= new Scanner(System.in);
int[] items;
double sum=0;
int numItems,largest,smallest;
System.out.print("Enter the number of students: ");
numItems=scan.nextInt();
items=new int [numItems];
largest=smallest=items[0];
for(int i=0;i<items.length;i++)
{
System.out.print("Enter the grade for student "+(i+1)+": ");
items[i] = scan.nextInt();
sum+=items[i];
}
for (int i = 0; i < items.length; i++) {
Arrays.sort(items);
largest=items[items.length-1];
smallest=items[0];
}
System.out.printf("The average is "+"%.2f\n",sum/items.length);
System.out.println("The minimum is: "+smallest);
System.out.println("The maximum is: "+largest);
scan.close();
}
}
导入java.util.array;
导入java.util.Scanner;
公班簿记员
{
公共静态void main(字符串[]arg)
{
扫描仪扫描=新扫描仪(System.in);
int[]项;
双和=0;
int numItems,最大,最小;
System.out.print(“输入学生人数:”);
numItems=scan.nextInt();
项目=新整数[numItems];
最大=最小=项目[0];
对于(inti=0;iwhy你甚至需要一个数组?它是硬件的一部分,用户给数组一个长度,然后用户输入和硬件一样多的元素length@redsky没问题,如果你觉得它有帮助,那么请考虑投票或接受答案。祝好运编码!
import java.util.Arrays;
import java.util.Scanner;
public class GradeBookKeeper
{
public static void main(String[] arg)
{
Scanner scan= new Scanner(System.in);
int[] items;
double sum=0;
int numItems,largest,smallest;
System.out.print("Enter the number of students: ");
numItems=scan.nextInt();
items=new int [numItems];
largest=smallest=items[0];
for(int i=0;i<items.length;i++)
{
System.out.print("Enter the grade for student "+(i+1)+": ");
items[i] = scan.nextInt();
sum+=items[i];
}
for (int i = 0; i < items.length; i++) {
Arrays.sort(items);
largest=items[items.length-1];
smallest=items[0];
}
System.out.printf("The average is "+"%.2f\n",sum/items.length);
System.out.println("The minimum is: "+smallest);
System.out.println("The maximum is: "+largest);
scan.close();
}
}