Java程序:查找数组中3个数字的最小数和最大数

Java程序:查找数组中3个数字的最小数和最大数,java,arrays,loops,Java,Arrays,Loops,下面的代码适用于最大值,但适用于它显示的最小值:对于我输入的任何3个值,最小的数字都是0。非常感谢您的帮助 import java.util.Scanner; class MyClass{ public static void main(String[] args) { // declare and create array object // declare smallest and largest int variable

下面的代码适用于最大值,但适用于它显示的最小值:对于我输入的任何3个值,最小的数字都是0。非常感谢您的帮助

import java.util.Scanner;

class MyClass{


        public static void main(String[] args) {
            // declare and create array object
            // declare smallest and largest int variables 
            int[] numbers;
            numbers = new int[3];
            int smallest = numbers[0], largest = numbers[0];

            // create Scanner object
            Scanner input = new Scanner(System.in);

            // prompt user 
            System.out.print("Please enter 3 numbers: \n");
            // use for loop to obtain user input
            for (int counter = 0; counter < numbers.length; counter++) {
                numbers[counter] = input.nextInt();
            } // end obtaining input

            // for loop to find largest and smallest values
            for (int i=0 ;i< numbers.length; i++) {
                if (numbers[i] < smallest) {
                    smallest = numbers[i];
                } // end finding smallest
                if (numbers[i] > largest) {
                    largest = numbers[i];
                } // end finding largest number       

            }

            System.out.println("largest number is "+largest);
            System.out.println("smallest number is "+smallest);

        }   

}
import java.util.Scanner;
类MyClass{
公共静态void main(字符串[]args){
//声明并创建数组对象
//声明最小和最大的int变量
int[]数字;
数字=新整数[3];
int最小=数字[0],最大=数字[0];
//创建扫描仪对象
扫描仪输入=新扫描仪(System.in);
//提示用户
系统输出打印(“请输入3个数字:\n”);
//使用for循环获取用户输入
用于(int计数器=0;计数器最大值){
最大=数字[i];
}//结束查找最大数
}
System.out.println(“最大值为”+最大值);
System.out.println(“最小值为”+最小值);
}   
}

最小值在此处始终初始化为0:
int minimest=numbers[0]
。除非用户输入小于0的值,否则最小值将保持为0。改为使用
Integer.MAX\u VALUE
int minimable=Integer.MAX\u VALUE
)以确保实际选择的是最小的数字。

您正在将
minimate
初始化为
0
,因此,如果数组中的任何数字都不小于
0
,结果仍然是
0
。而是将其初始化为
Integer.MAX\u VALUE
,这是Integer数据类型可以具有的最高值。

公共静态void getMaxMin(int a、int b、int c){
public static void getMaxMin(int a, int b, int c){
        int max=a;
        int min=a;
        if(b>max){
            max=b;
        }
        if(c>max){
            max=c;
        }
        if(b<min){
            min=b;
        }
        if(c<min){
            min=c;
        }
        System.out.println("min="+min);
        System.out.println("max="+max);
    }
int max=a; int min=a; 如果(b>最大值){ max=b; } 如果(c>最大值){ max=c; } if(b
import java.util.Scanner;
类MyClass{
公共静态void main(字符串[]args){
//声明并创建数组对象
//声明最小和最大的int变量
int[]数字;
数字=新整数[3];
//创建扫描仪对象
扫描仪输入=新扫描仪(System.in);
//提示用户
系统输出打印(“请输入3个数字:\n”);
//使用for循环获取用户输入
用于(int计数器=0;计数器
在读取中的任何数字之前,您正在设置
最小值
最大值
。这意味着它们都将为零。这对于最大值来说是可以的,但对于最小值来说不是。但是我认为int minimest=numbers[0]意味着它将作为数组中的第一个元素,而不是作为值0,但我认为int minimest=numbers[0]意味着它将把它作为数组中的第一个元素,而不是作为值0@Amanda是的,但是您读取了
数字[0]的值
在为其赋值之前。由于数组最初是用0填充的,因此您将得到0作为
最小的
。您可以在读取输入后读取
最小的
最大的
的初始值,或者使用我的解决方案。注意:对最大元素的求值只起作用,因为您只使用了正值整数(与
最小的
的问题相同)。好的,我现在知道了。谢谢!
import java.util.Scanner;

class MyClass {
    public static void main(String[] args) {
        // declare and create array object
        // declare smallest and largest int variables 
        int[] numbers;
        numbers = new int[3];

        // create Scanner object
        Scanner input = new Scanner(System.in);

        // prompt user 
        System.out.print("Please enter 3 numbers: \n");
        // use for loop to obtain user input
        for (int counter = 0; counter < numbers.length; counter++) {
            numbers[counter] = input.nextInt();
        } // end obtaining input

        //Use in built Math.min and Math.max to get smallest and largest numbers
        System.out.printf("%s: %d%n", "smallest number is ", Math.min(numbers[0], Math.min(numbers[1], numbers[2])));
        System.out.printf("%s: %d%n", "largest number is ", Math.max(numbers[0], Math.max(numbers[1], numbers[2])));
    }
}