我正在根据用户输入设置数组,然后尝试查找最小值和最大值。但它似乎只适合查找最大值而不是最小值。
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();
}
}
//输出
输入学生人数:4
为学生1输入年级:
2个
输入学生2的年级:
1.
为学生3输入年级:
2个
输入学生4的年级:
3.
平均值是2.00
最低限度是:2
最大值为:3
if (largest < items[i])
largest = items[i]
else if (smallest > items[i])
smallest = items[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();
}
}
问题是,只有在遍历items数组时没有找到新的最大元素时,才设置了minimest。因此,将其更改为另一条if语句,而不是else,以查看您正在迭代的项是否小于当前的最小项,如所示,
if(largest < items[i])
{
largest = items[i];
}
if(smallest > items[i])
{
smallest = items[i];
}
此外,您正在初始化最小的
和
最大的
到
项中的第一个元素,由于此时项数组为空,因此该元素将默认为0。尝试将“最大”初始化为可能的最小等级,并将“最小”初始化为可能的最大等级,就像这样(当前使用“最小”和“最大”整数值),
int largest=Integer.MIN_VALUE,smallest=INTEGER.MAX_VALUE;
这样做的原因是你永远找不到小于0的分数,因为这是你之前得到的,最小的分数总是0。
我无法使此程序正确运行。我所有的答案,最小值,最大值,平均值都是零。我知道我在开始时将它们初始化为零,但它们应该在整个代码中都改变吗? } 输出:输入数字: 2个 您输入:2 最大值和最小值为0 输入第二个数字 3. 您输入:3 最大值和最小值为0
问题内容: 我正在寻找python中整数的最小值和最大值。例如,在Java中,我们有和。python中是否有类似的东西? 问题答案: Python 3 在Python 3中,此问题不适用。普通int类型是无界的。 但是,你实际上可能正在寻找有关当前解释器的字长的信息,在大多数情况下,该信息将与机器的字长相同。该信息在Python 3中仍以形式提供,这是一个有符号的单词可以表示的最大值。等效地,它是
主要内容:普通算法,分治算法程序中,我们经常使用数组(列表)存储给定的线性序列(例如 {1,2,3,4}),那么如何查找数组(序列)中的最大值或者最小值呢? 查找数组(序列)中最大值或最小值的算法有很多,接下来我们以 {3,7,2,1} 序列为例讲解两种查找最值的算法,一种是普通算法,另一种是借助 分治算法解决。 普通算法 普通算法的解决思路是:创建两个变量 max 和 min 分别记录数组中的最大值和最小值,它们的初始值都
计算newArr数组所有对象中arr二维数组,比较后返回其中的[[最小值,最小值],[最大值,最大值]]; 要这种结果[[39.867638888888884, 115.39333333333333], [50.97152777777777, 120.31527777777778]]
我刚刚开始在HackerRank上练习,以提高我的编码技巧。我主要使用Java作为我的首选语言。我已经得到了这个问题,我已经尽力给出了解决方案,但没有清除所有的测试用例。我已经清除了15个测试用例中的5个,但仍有10个需要完成。那些在hackerrank上的人可以通过以下链接看到这个问题:最小-最大和 无论如何,我给出了这个问题的简要描述: 问题陈述 给定五个正整数,通过将五个整数中的恰好四个求和
问题内容: 我的代码没有给出错误,但是没有显示最小值和最大值。代码是: 我是否需要system.out.println()来显示它,否则返回应该起作用吗? 问题答案: 您正在调用方法,但不使用返回的值。